zoukankan      html  css  js  c++  java
  • 数据库索引

    1.注意事项

      1.1 mysql 5.7 innodb 这个版本一条sql里面索引只能用一条

      1.2 对于现在mysql5.7中,只有小于等于和小于才会触发索引。而大于则是无法触发索引,且小于可以乱序(mysql优化器优化了),但是按照最左匹配原则

      1.3 count(*) innnodb 没有缓存数据行数 数据量大的话查询就慢

    2.B-Tree索引的限制
    • 如果不是按照索引的最左列开始查找,则无法使用索引。
    • 不能跳过索引中的列
    • 如果查询中有某列的范围查询,则其右边所有列都无法使用索引优化查询。
    3.哈希索引限制:
    • 哈希索引只包含哈希值和行指针,不存储字段值,所以不能使用"覆盖索引"的优化方式,去避免读取数据表。
    • 哈希索引数据并不是按照索引值顺序存储的,索引也就无法用于排序
    • 哈希索引页不支持部分索引列匹配查找,因为哈希索引始终是使用索引列的全部内容计算哈希值的。
    • 哈希索引只支持等值比较查询,包括=,in(),<=>,不支持任何范围查询。列入where price>100
    • 访问哈希索引的数据非常快,除非有很多哈希冲突(不同的索引列值却有相同的哈希值)
    • 如果哈希冲突很多的话,一些索引维护操作的代价也会很高。

    4. 聚簇索引的叶子节点就是数据节点 innodb 使用的是聚簇索引 一个表只可有一个聚簇索引一般默认主键

      innodb中,在聚簇索引之上创建的索引称之为辅助索引,辅助索引访问数据总是需要二次查找,非聚簇索引都是辅助索引,像复合索引、前缀索引、唯一索引,辅助索引叶子节点存储的不再是行的物理位置,而是主键值

     非聚簇索引的叶子节点仍然是索引节点,只不过有指向对应数据块的指针 MYISAM使用的非聚簇索引 一个表可以有多个非聚簇索引

  • 相关阅读:
    后缀表达式
    约瑟夫环
    能手进阶:Linux操作琐细驱动编译与运转
    VLC 0.8.5
    Gimpshop 2.2.11
    Blender 2.42
    有助于数据确立平安环境的次要效率阐明');
    DivFix 0.20
    Ubuntu Dapper 提速脚本
    你值得知道的五佳非主流阅读器
  • 原文地址:https://www.cnblogs.com/bug1024/p/11389732.html
Copyright © 2011-2022 走看看