• 如何创建一个好的索引?


    创建一个好的索引,需要考虑以下方面:

    • 最左匹配原则。这个非常重要,MySQL会一直向右匹配直到遇到范围查询(<、>、between、Like)就停止匹配。
    • 尽量选择区分度高的列作为索引。区分度的公式是COUNT(DISTINCT col)、COUNT(*)。表示字段不重复的比例,比率越大扫描的记录数就越少。
    • 索引列不能参与计算,尽量保持列“干净”。比如FROM_UNIXTIME(create_time) = ‘2020-02-02’就不能使用索引,原因是B+树中存储的都是数据表中的字段值,但是进行检索时,需要把所有元素都应用函数才能比较,这样的代价太大。所以语句写成:create_time =UNIX_TIMESTAMP(‘2020-02-01’)。
    • 尽可能的扩展索引,不要建立新索引。比如已经有了a的索引,现在要加(a,b)的索引,那么只需要修改原来的索引即可。单个多列组合索引和多个单列索引的检索查询效果不同,因为执行SQL时,MySQL只能用一个索引,所以会从单列索引中选择一个限制最严格的索引(MYSQL5.0以后有“合并索引”的策略,但是还是应该建立比较好的索引,而不应该依赖于“合并索引”这个策略)
    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    HMMPfam的安装使用手记(转载)
    Linux下MySQL忘记密码的解决方法
    systemctl命令
    Linux配置ssh免密登录
    Linux下scp报Permission denied错误的解决方法
    Ubuntu修改时区和时间
    Ubuntu安装JDK
    Ubuntu用apt安装MySQL
    IntelliJ IDEA集成工具Database连接MySQL8.0报错的解决方法
    tar命令
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14360635.html
Copyright © 2020-2023  润新知