(1)單張表中索引數量不超過5個。ide
(2)單個索引中的字段數不超過5個。排序
(3)索引名必須所有使用小寫。索引
(4)非惟一索引按照「idx_字段名稱[_字段名稱]」進用行命名。例如idx_age_name。字符串
(5)惟一索引按照「uniq_字段名稱[_字段名稱]」進用行命名。例如uniq_age_name。it
(6)組合索引建議包含全部字段名,過長的字段名能夠採用縮寫形式。例如idx_age_name_add。class
(7)表必須有主鍵,推薦使用UNSIGNED自增列做爲主鍵。數據類型
(8)惟一鍵由3個如下字段組成,而且字段都是(整)(形)(時),可以使用惟一鍵做爲主鍵。其餘狀況下,建議使用自增列或發號器做主鍵。命名
(9)禁止冗餘索引。數據
(10)禁止重複索引。查詢
(11)禁止使用外鍵。
(12)聯表查詢時,JOIN列的數據類型必須相同,而且要創建索引。
(13)不在低基數列上創建索引,例如「性別」。
(14)選擇區分度大的列創建索引。組合索引中,區分度大的字段放在最前。
(15)對字符串使用前綴索引,前綴索引長度不超過8個字符。
(16)不對過長的VARCHAR字段創建索引。建議優先考慮前綴索引,或添加CRC32或MD5僞列並創建索引。
(17)合理建立聯合索引,(a,b,c) 至關於 (a) 、(a,b) 、(a,b,c)。
(18)合理使用覆蓋索引減小IO,避免排序。