效率機制

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倍投大小的方法 股票涨跌由什么决定 沪深300股票指数期货 江西快3开奖 2010年股票融资额 江苏快三技巧 今天的股市行情及走 三分彩开奖不一样 黑龙江6+1一等奖 pk10计划在线 乐彩论坛17500 江苏七位数基本走势图 上海快三走势图上海快3 陕西休彩十一选五开奖查询 极速赛车是官方彩吗 江西快三走形态走势图 赛车pk10预测