索引规范
更新时间 2025-06-17 11:00:33
最近更新时间: 2025-06-17 11:00:33
本文为您介绍索引规范。
禁止修改聚集索引或主键
为了维持B+tree带来大量的数据移动,一般要求使用跟业务不相关的id来作为整形自增主键
尽量合并索引
索引加快了查询度,但是却会影响写入性能。
一个表的索引应该结合这个表相关的所有SQL综合创建,尽量合并。
组合索引的原则是:过滤性越好的字段越靠前,例如
key (a)
和key(a,b)
存在,则可以直接删除key(a)
,对于select ……from tb where a=123;
,则可以使用索引(a,b)
。
禁止给选择性低的字段建单列索引
MySQL对索引的过滤性存在要求,如果过滤性太低,则MySQL会被放弃使用。
禁止使用外键约束
对性能损耗特别大。
让应用程序去维护约束。
字符类型字段应尽量使用前缀索引
太长的索引不仅影响写入性能,而且使用效果较差,因此字符串类型字段一般只建前缀索引,例如
alter table test_long_str add index idx_str(str(16));
。
合理使用复合索引
一般情况下,复合索引比普通索引更加适用,因此,有些索引可以修改成复合索引。
针对LIKE查询的索引问题,应注意使用前缀索引
LIKE只能使用前缀索引,示例说明如下:
col like “abc%”
可以用索引col like “%abc%”
不可以用索引col like“%abc”
不可以用索引