索引
微光丶
行动π
展开
-
索引的分类以及如果创建索引
从数据结构角度1、B+树索引(O(log(n)))关于B+树索引,可以参考 MySQL索引背后的数据结构及算法原理2、hash索引a 仅仅能满足"=","IN"和"<=>"查询,不能使用范围查询b 其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-T...原创 2019-03-19 16:57:31 · 620 阅读 · 0 评论 -
B-tree索引和hash索引的区别
hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。可 能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash 索引...原创 2019-03-19 16:58:58 · 404 阅读 · 0 评论 -
单列索引和多列索引
1.单列索引所有的MySQL列类型能被索引。在相关的列上的使用索引是改进SELECT操作性能的最好方法。一个表最多可有16个索引。最大索引长度是256个字节,尽管这可以在编译MySQL时被改变。对于CHAR和VARCHAR列,你可以索引列的前缀。这更快并且比索引整个列需要较少的磁盘空间。在CREATE TABLE语句中索引列前缀的语法看起来像这样: KEY index_n...原创 2019-03-19 17:01:45 · 2414 阅读 · 2 评论 -
索引优化
巧妙的使用 Explain看一条 SQL 语句的性能,可以使用 explain 关键字查看语句性能,这里说一下其中的 type 字段的部分含义:all,即全表扫描,说明这个 SQL 语句没有使用到索引,有可能是表本身没有创建索引,也可能是因为 SQL 语句导致没有使用索引 range,说明使用的是有范围的索引扫描,性能优于 index index,这里说明使用了索引,这种情况下,如果 ...原创 2019-03-19 17:05:23 · 203 阅读 · 0 评论