(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,避免排序。