內存是最重要的因素,由於它容許您調整服務器系統變量。更多的內存意味着能夠將更大的密鑰和表緩存存儲在內存中,從而減小磁盤訪問速度,下降一個數量級。緩存
若是未將服務器變量設置爲使用額外的可用內存,則僅添加更多內存可能不會帶來顯着改進。服務器
在主板上使用更多RAM插槽會增長總線頻率,RAM和CPU之間會有更多延遲。所以,最好使用每一個插槽的最大RAM大小。優化
快速磁盤訪問相當重要,由於最終它是數據所在的位置。關鍵指標是磁盤搜索時間,衡量物理磁盤移動訪問數據的速度,所以請選擇尋道時間儘量低的磁盤。spa
您還能夠爲臨時文件和事務日誌添加專用磁盤。日誌
更快的網速主要影響數據接收和發送的速度,在可能的狀況通常建議採用局域網的鏈接方式。server
雖然硬件瓶頸一般落在其餘地方,但更快的處理器容許更快地執行計算,而且結果更快地發送回客戶端。索引
除處理器速度外,處理器的總線速度和高速緩存大小也是須要考慮的重要因素。事務
一般用的索引:主鍵(Primary keys),惟一索引(Unique Index),普通索引(Plain Index),全文索引(Full-Text Index)內存
主鍵是惟一的,永遠不能爲空,不然沒法建立索引。它始終只能識別一條記錄,而且必須表示每條記錄。每一個表只能有一個主鍵。get
在XtraDB / InnoDB表中,全部索引都包含主鍵做爲後綴。所以,當使用該存儲引擎時,保持主鍵儘量小是特別重要的。若是主鍵不存在且沒有UNIQUE索引,則InnoDB會建立一個6字節的聚簇索引,該索引對用戶不可見。
惟一索引必須是惟一的,但它能夠爲null,能夠單個列和多個列組合。
不須要惟一,能夠單個列和多個列組合。
<,<=,> =,>,BETWEEN,LIKE 'xxx%' 都是能應用索引的;
可是例如:<>,!=,LIKE '%xxx' 等都是不會應用索引查詢,通常狀況單個表中的索引最好不要超過6個。
至於SQL優化這個範圍有點廣,後續再看看寫吧~~~