博客
关于我
MySQL:索引失效场景总结
阅读量:790 次
发布时间:2023-02-13

本文共 695 字,大约阅读时间需要 2 分钟。

执行计划查索引

通过执行计划命令可以查看查询语句使用了什么索引。这种方法对于优化数据库性能非常有帮助,因为它可以帮助我们了解查询是如何执行的,并且可以帮助我们判断是否使用了合适的索引。

例子

假设我们有如下查询:

EXPLAIN SELECT * FROM ods_finebi_area WHERE areaName = '福建'

执行查询计划后,key 列的值就是被使用的索引的名称。如果 key 列没有值,表示查询未使用索引。

在什么列上创建索引

创建索引是优化数据库性能的重要步骤。以下是一些建议,可以帮助你更好地决定在哪些列上创建索引:

  • 列经常被用于 WHERE 条件中的字段

    如果某个字段经常被用在 WHERE 条件中,那么在该字段上创建索引可以显著提高查询性能。因为索引可以快速定位到符合条件的记录,从而减少查询时间。

  • 尽量在整数类型和日期类型上创建索引

    对于整数类型和日期类型,创建索引通常会带来更大的性能提升。这是因为这些数据类型在查询时通常会进行比较操作,而索引可以加快这种比较的速度。

  • 注意事项

    • 字符串类型不建议在索引上

      虽然有时候在字符串上创建索引也可能有帮助,但一般来说,对于字符串类型的字段创建索引并不会带来显著的性能提升,甚至可能会增加数据库的开销。因此,建议优先在整数和日期类型上创建索引。

    • 避免过度索引

      创建索引的目的是为了提高查询性能,但过度索引可能会带来额外的开销。因此,在决定是否创建索引时,需要仔细评估该字段是否真的需要索引,或者是否对查询性能有显著的提升。

    通过遵循上述建议,可以合理地决定在数据库表中哪些列上创建索引,从而优化数据库的查询性能。

    转载地址:http://hedfk.baihongyu.com/

    你可能感兴趣的文章
    Mysql锁(2):表级锁
    查看>>
    MySQL锁,锁的到底是什么?
    查看>>
    MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
    查看>>
    Mysql错误2003 -Can't connect toMySQL server on 'localhost'(10061)解决办法
    查看>>
    MySQL错误提示mysql Statement violates GTID consistency
    查看>>
    mysql错误:This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de
    查看>>
    mysql长事务
    查看>>
    mysql问题记录
    查看>>
    mysql间隙锁
    查看>>
    MySQL集群解决方案(1):MySQL数据库的集群方案
    查看>>
    MySQL集群解决方案(2):主从复制架构
    查看>>
    MySQL集群解决方案(3):MyCat中间件
    查看>>
    MySQL集群解决方案(4):负载均衡
    查看>>
    MySQL集群解决方案(5):PXC集群
    查看>>
    MySQL面试宝典
    查看>>
    WAP短信:融合传统短信和互联网的新型通信方式
    查看>>
    mysql面试题学校三表查询_mysql三表查询分组后取每组最大值,mysql面试题。
    查看>>
    Mysql面试题精选
    查看>>
    MySQL面试题集锦
    查看>>
    mysql面试题,存储引擎InnoDB和MyISAM
    查看>>