MYSQL索引使用注意事项

索引使用注意事项:

1.索引列运算

不要在索引列上进行运算操作,否则索引将失效;

2.字符串不加引号

字符串类型使用时,不加引号,否则索引将失效;

3.模糊查询

如果仅仅是尾部模糊匹配,索引将不会失效。如果是头部匹配,索引失效;

4.Or连接的条件

用or分开的条件,如果or前的条件中的列有索引,二后面的列中没有索引,那么涉及的索引都不会被用到。

5.数据分布影响

如果MySQL评估使用索引比全表更慢,则不使用索引。

6.最左前缀法则

如果索引了多列(联合索引),要遵循最左前缀法则。最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。如果跳跃某一列,索引将部分失效(后面的索引字段失效)。

7.范围查询

联合索引中,出现范围查询(>, <),范围查询右侧的列索引失效。在可以的情况下,尽量换成(>=, <=)。

8.SQL提示

SQL提示是优化数据库的一个重要手段,简单来说,就是在SQL语句中加入一些认为提示来达到优化操作的目的。    use index, ignore index, force index;

9.覆盖索引

尽量使用覆盖索引(查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到),减少使用select*。

知识小贴士:using index condition:查找使用了索引,但是需要回表查询数据

using where, using index:查找使用了索引,但是需要的数据都在索引列中能找到,所以不需要回表查询数据。

10.前缀索引

语法

create index idx_xxxx on table_name(column(n));

前缀长度

11.单列索引与联合索引

单列索引:即一个索引只包含单个列

联合索引:即一个索引包含了多个列

在业务场景中,如果存在多个查询条件,考虑针对查询字段建立索引时,建议建立联合索引,而非单列索引。

MYSQL索引使用注意事项_第1张图片

MYSQL索引使用注意事项_第2张图片

你可能感兴趣的:(mysql,数据库)