zoukankan      html  css  js  c++  java
  • mysql索引【第四篇】

    优化器选择索引的逻辑:

    找到一个最优的执行方案,用最小的代价去执行语句。在数据库里,扫描行数是影响执行代价的因素之一,扫描行数越少,意味着访问磁盘的次数越少,消耗CPU资源越少。当然,是否生成临时表、是否排序等因素也会影响优化器选择索引。

    索引选择异常和处理:

    1.使用 force index 强行选择一个索引

    如果索引改了名字,相因的语句需要修改。不同类型数据库迁移还可能会有语法不兼容

    2.修改sql语句,引导mysql使用我们期望的索引  【但是要语句逻辑一致】

    3.重建一个更合适的索引,或删掉误用的索引

    前缀索引:

    alter table A add index   idx_mail(email(4))    ##比如 email的值为:xiaoming@qqq.com

    执行顺序:

    1.从索引树上找到满足索引值 xiao 的记录

    2.到主键查处整行数据,判断取出的值与查询条件是否匹配            ##这里有一个回表的过程

    3.查询下一条数据,继续判断,直到索引值不满足xiao的记录,跳出循环

    优点:定义好长度,可以节省空间,减少额外增加的查询成本

    缺点:在多个索引的查询条件中,覆盖索引会失效

  • 相关阅读:
    Scala 并发编程
    rsyslog start with
    rsyslog start with
    logrotate 日志清理后 rsyslog中断问题
    logrotate 日志清理后 rsyslog中断问题
    logrotate 清理tomcat日志
    rsyslog 传输mysql 日志
    rsyslog 传输mysql 日志
    NYOJ833
    NYOJ65
  • 原文地址:https://www.cnblogs.com/byfboke/p/13228163.html
Copyright © 2011-2022 走看看