关系型数据库---MySQL---索引

Posted anpeiyong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系型数据库---MySQL---索引相关的知识,希望对你有一定的参考价值。

1、索引是一种特殊的文件,包含着对数据表中所有记录的引用指针;

2、特点:

  1.1 优势:加快数据检索操作;

  1.2 劣势:

      1.1.1 数据修改操作变慢,因为每修改一次数据记录,索引必须刷新一次;

      1.1.2 为了弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE选项,不需要每次修改数据都刷新索引,等待全部数据插入/修改完成后再更新索引;

      1.1.3 占用硬盘空间;

3、InnoDB数据表的索引:

  1.1 在InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的基础;

    【数据行级锁定机制】:在事务操作的执行过程中锁定正在被处理的个别记录,不让其他用户进行访问;

  1.2 出于效率方面的考虑,InnoDB的数据行级锁定机制实际发生在索引上,而不是数据表自身上;

  1.3 【限制】:  

     1.1.1 如果where子句中出现!=,将无法使用索引;

     1.1.2 如果where子句中出现函数,将无法使用索引;

     1.1.3 如果where子句中使用了like操作符,只有‘abc%‘才会使用索引;‘%abc%‘将无法使用索引;

     1.1.4 order by操作时,只有order by后不是一个查询条件表达式时才会使用索引;

4、索引分类:

  1.1 普通索引:

    1.1.1 由关键字key或者index定义的索引;

    1.1.2 作用:加快对数据的检索速度;

    1.1.3 该数据列可以包含相同的值;

  1.2 唯一索引:

    1.1.1 如果确定某个数据列包含不同的值,创建时应建为唯一索引;

  1.3 主索引:

    即为主键创建的主键索引;

  1.4 复合索引:

  1.5 全文索引:(FULLTEXT())

    1.1.1 文本字段上的普通索引只能加快对出现在字段内容最前面的字符串进行检索

    1.1.2 InnoDB数据表不支持全文索引;

      

        

以上是关于关系型数据库---MySQL---索引的主要内容,如果未能解决你的问题,请参考以下文章

Mysql索引

Mysql 索引优化分析

mySql索引优化分析

MySQL索引优化分析

MySQL索引优化分析

Mysql 索引优化分析