美文网首页
mysql索引

mysql索引

作者: 帅气十里不如你 | 来源:发表于2020-11-14 16:35 被阅读0次

索引简介

索引(index)是帮助mysql高效获取数据的数据结构,即索引是数据结构。

可以理解为:==排好序的快速查找数据结构==

==索引会影响到SQL语句中的条件和排序==

mysql索引的实现是通过二叉树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在一定复杂度内获取到相应的数据,从而快速的检索出符合条件的记录。

优势与劣势

  • 优势:提高数据检索效率,降低数据库的IO成本,降低数据排序的成本,降低了CPU消耗。
  • 劣势:降低更新表的速度。索引只是提高效率的一个因素,如果mysql有大数据量的表,就需要花时间研究建立最优秀的索引。

分类

注意:一张表最多有5个索引

  • 单值索引:

即一个索引只包含单个列,一个表可以有多个单列索引

  • 唯一索引

索引列的值必须唯一,但允许有空值

  • 复合索引

即一个索引包含多个列

基本语法:

//创建
create [unique] index indexName On mytable (columnname(length))
alter mytable add [unique] index [indexName] on (columnname(length))

//删除
drop index [indexName] on mytable;

//查看
show index from table_name\G

适合创建索引的情况

  1. 主键建立唯一索引
  2. 频繁作为查询条件的字段应该创建索引
  3. 查询中与其它表关联的字段,外键关系建立索引
  4. 在高并发问题下倾向创建组合索引
  5. 查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度。
  6. 查询中统计或者分组的字段

不适合创建索引的情况

  1. 频繁更新的字段不适合创建索引
  2. where条件里用不到的字段不创建索引
  3. 表的记录太少
  4. 经常增删改的表
  5. 数据重复且平均分布的表的字段,因此应该只为最经常查询和和最经常排序的数据列建立索引

注意:如果某个数据列包含许多重复的内容,为它建立就没有太大的实际效果。

相关文章

  • 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/kbdwbktx.html