美文网首页
Mysql 索引

Mysql 索引

作者: 不是锦萧 | 来源:发表于2016-03-17 17:17 被阅读0次

索引是用来加快数据库查询的最重要的技术。

Mysql官方的定义:索引是帮助Mysql高效获取数据的数据结构,所以:索引的本质是数据结构。

数据之外,数据库还存储着满足特定查找算法的数据结构,这种数据结构以某种方式指向数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。

索引的分类:

1)B树索引,大部分引擎都支持,包括普通索引,唯一所以和主键索引;

2)Hash索引,只有Memory 引擎支持,使用场景简单;

3)R树索引,空间索引,主要用于存储地理空间,MyISAM

4)Full-text 全文索引,MyISAM,InnoDB 5.6 开始支持

索引的选择原则

1)较频繁作为查询条件的需要创建索引

2)唯一性太差的不适合单独创建索引;

3)更新非常频繁的数据不适合作为索引。

4)不会出现在where子句中的字段不应该建索引;

5)where 和 join 子句用到的列需要加索引;

6)尽量使用短索引,比如 可以取字符串的前10个字符建立 索引

不建议建立索引的情况:

1)表中数据比较少的时候,比如 少于 2000

2)列的选择性比较低的时候,选择性计算: select count(distinct(column))/count(*) from table;

索引能够使用的操作符:    < <= = > >= between in ,like 语句需要不以 % 或 _ 开头

索引的最左匹配原则

1)多列索引,用到左边的索引才能匹配

2)like语句 以 % 或 _ 开头 不能匹配索引

3)范围列 可以用到索引,但是范围列后面的列不能用到索引

4)查询函数中有索引或表达式 则不能用到索引

索引的代价

1)索引需要消耗存储空间

2)索引会加重 插入、删除和修改记录时的负担

3)Mysql运行时需要消耗系统资源维护索引

所以,如果表的记录比较少,字段的选择性比较低,不适合建立索引

相关文章

  • MySQL索引及查询优化书目录

    MySQL索引的原理之索引目的 MySQL索引的原理之索引原理 MySQL索引的原理之索引的类型 MySQL索引的...

  • 高性能的索引策略

    MySQL查询基础-查询执行过程 MySQL聚簇索引 MySQL覆盖索引 MySQL索引扫描排序 MySQL冗余和...

  • MySQL索引的使用

    MySQL索引 MySQL索引可以快速提高MySQL的检索速度。索引分单列索引和组合索引单列索引:即一个索引只包含...

  • Mysql索引与锁

    本文以Mysql5.7为例测试。 1:mysql索引方法 Mysql的索引方法分为btree索引和hash索引。 ...

  • 索引(二)

    mysql索引的新手入门详解mysql索引之三:索引使用注意规则 索引(Index)是帮助 MySQL 高效获取数...

  • MySQL 索引分类

    MySQL索引的分类(根据数据结构) 索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL...

  • MySQL--索引

    MySQL索引 查看索引 创建索引 创建唯一索引 创建主键索引 删除索引 删除主键 MySQL视图 创建视图 删除...

  • mysql索引

    索引 mysql索引的建立对于mysql的高效运行是很重要的,索引可以大大提高mysql的检索速度。索引分单列索引...

  • 5.2MySQL创建高性能索引考察点

    MySQL索引的基础和类型延伸:MySQL索引的创建原则延伸:MySQL索引的注意事项 索引的基础索引类似于书籍的...

  • MySql 数据查询优化

    1. MySQL索引类型: mysql的索引有5种:主键索引、普通索引、唯一索引、全文索引、聚合索引(多列索引)。...

网友评论

      本文标题:Mysql 索引

      本文链接:https://www.haomeiwen.com/subject/cbeclttx.html