- 表的某个字段值的离散度越高,该字段就越合适选做索引的关键字。主键字段以及唯一性约束字段适合选作索引的关键字,原因就是这些字段的值非常离散。尤其是在主键字段创建索引时, cardinality (基数,集的势)的值就等于该表的行数。 MySQL 在处理主键约束以及唯一性约束时,考虑周全。数据库用户创建主键约束的同时, MySQL 自动创建主索引( primary index ),且索引名称为 Primary;数据库用户创建唯一性索引时, MySQL 自动创建唯一性索引( unique index ),默认情况下,索引名为唯一性索引的字段名。
- 占用存储空间少的字段更适合作为索引的关键字。
- 存储空间固定的字段更适合选做索引的关键字
- Where子句中经常使用的字段应该创建索引,分组或者排序字段应该创建索引,两个表的链接字段应该做为索引
- 更新频繁的字段不适合创建索引,不会出现在where子句中的字段不应该创建索引
- 最左前缀原则
- 尽量使用前缀索引
MySQL需要创建索引的情况
字段的离散度高和唯一性是选择索引关键字的重要因素,主键和唯一性约束字段因其高离散度常被用作索引。MySQL在创建主键和唯一性约束时会自动创建对应的索引。存储空间小的字段更适宜作索引,常用于Where子句、分组和排序的字段应建立索引,而更新频繁和不在查询条件中的字段则不推荐。同时,利用最左前缀原则优化前缀索引的使用。

被折叠的 条评论
为什么被折叠?



