效率機制

MySQL 優化

在整個 Discuz! X2.5 產品中,為了提供效率,需要對 SQL 做相應的優化。有時候不能忽略一些細小的優化,當出現過多未優化的細節時,也能帶來致命的負載問題。

延遲更新機制

例如:首頁的在線人數等,在實際產品中,有些數據不一定需要實時更新的,因為對于這類型的數據來說,實時更新的價值不高,對于這種情況我們可以考慮在產品研發過程中引入廷遲更新機制,這樣可以從一定程度上降低SQL的負載。

索引

索引的合理使用,能給你帶來高效的SQL查詢,但不是索引越多越好,索引的引入需在查看整個模塊的設計,使之最大程度上使用索引。

讀寫分離

讀寫分離,在X2的版本中,我們引入了多SQL服務器的支持,在主從服務器中,你可以配置寫服務器跟讀服務器,這樣對于負載高的站點中可以使用這個功能達到讀寫分離,降低由于寫過程序中造成的MySQL表鎖定后的SQL排隊等候時間過長。當你的服務器支持讀寫分離要求時,你可以在config_global.php中配置。例如:

/**
 * 數據庫主服務器設置, 支持多組服務器設置, 當設置多組服務器時, 則會根據分布式策略使用某個服務器
 * @example
 * $_config['db']['1']['dbhost'] = 'localhost'; // 服務器地址
 * $_config['db']['1']['dbuser'] = 'root'; // 用戶
 * $_config['db']['1']['dbpw'] = 'root';// 密碼
 * $_config['db']['1']['dbcharset'] = 'gbk';// 字符集
 * $_config['db']['1']['pconnect'] = '0';// 是否持續連接
 * $_config['db']['1']['dbname'] = 'x1';// 數據庫
 * $_config['db']['1']['tablepre'] = 'pre_';// 表名前綴
 *
 * $_config['db']['2']['dbhost'] = 'localhost';
 * ...
 *
 */
$_config['db'][1]['dbhost']  		= 'localhost';		
$_config['db'][1]['dbuser']  		= 'root';		
$_config['db'][1]['dbpw'] 	 	= 'root';		
$_config['db'][1]['dbcharset'] 		= 'gbk';		
$_config['db'][1]['pconnect'] 		= 0;			
$_config['db'][1]['dbname']  		= 'ultrax';		
$_config['db'][1]['tablepre'] 		= 'pre_';		

/**
 * 數據庫從服務器設置( slave, 只讀 ), 支持多組服務器設置, 當設置多組服務器時, 系統每次隨機使用
 * @example
 * $_config['db']['slave']['1']['dbhost'] = 'localhost';
 * $_config['db']['slave']['1']['dbuser'] = 'root';
 * $_config['db']['slave']['1']['dbpw'] = 'root';
 * $_config['db']['slave']['1']['dbcharset'] = 'gbk';
 * $_config['db']['slave']['1']['pconnect'] = '0';
 * $_config['db']['slave']['1']['dbname'] = 'x2';
 * $_config['db']['slave']['1']['tablepre'] = 'pre_';
 *
 * $_config['db']['slave']['2']['dbhost'] = 'localhost';
 * ...
 * 
 */
$_config['db']['slave'] = array();
				

SQL查詢與循環

禁止在循環中進行相應的SQL查詢,當遇到這種情況時,可以盡可能的將其轉換成循環外的查詢。

NOT IN

在SQL查詢中禁用NOT IN條件,NOT IN的效率比IN低很多,當使用IN時,也要盡可能的保證IN的數量。

SQL分拆

化繁為簡,在優化過程中,盡可能的化繁為簡,把復雜的SQL分拆成幾個簡單的SQL更有種于對整體SQL的優化處理。


pk10倍投大小的方法 福州麻将用什么app 淘宝股票代码 体彩十一运夺金遗漏 十分快三必中规律 试机号3d 美人捕鱼 广西麻将 江苏11选5推荐号码 股票价值投资方法 四人麻将免费 极速快三计划网页版 燕赵河北排列5开奖结果 捕鱼王手机版官方下载 正宗长沙麻将下载 什么叫时时彩四星组选6 股票融资方法有哪些