码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2019-01-16 15:33:39      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:主键索引   必须   用户   write   order by   空间   支持   nod   全文索引   

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---索引

标签:主键索引   必须   用户   write   order by   空间   支持   nod   全文索引   

原文地址:https://www.cnblogs.com/anpeiyong/p/10277139.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!