• 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.单列索引与联合索引

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

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

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

  • 相关阅读:
    算法矩阵提速原理
    浏览器支持http-flv协议
    Python:记录python安装 cv2报错及问题解决
    【动作模式识别】 肌电信号采集到动作模式识别的一个思路
    java毕业设计超市进销存管理系统Mybatis+系统+数据库+调试部署
    Redis真没那么难,这份大佬实战笔记也太可了,吹爆
    Django在PyCharm中启动失败的解决办法
    【C++上层应用】7. Web编程*
    11.4MyBatis(基础)
    MySQL主主复制
  • 原文地址:https://blog.csdn.net/ME_Liao_2022/article/details/134548498