MySQL 索引初步了解

MySQL 索引初步了解

        • 一、索引的类型
        • 二、创建索引的技巧

所谓索引就是为特定的mysql字段进行一些特定的算法排序,比如二叉树的算法和哈希算法,哈希算法是通过建立特征值,然后根据特征值来快速查找。而用的最多,并且是mysql默认的就是二叉树算法 BTREE,通过BTREE算法建立索引的字段,比如扫描20行就能得到未使用BTREE前扫描了2^20行的结果。

一、索引的类型

  1. UNIQUE唯一索引

不可以出现相同的值,可以有NULL值。

  1. INDEX普通索引

允许出现相同的索引内容。

  1. PRIMARY KEY主键索引

不允许出现相同的值,且不能为NULL值,一个表只能有一个primary_key索引。

  1. fulltext index 全文索引

上述三种索引都是针对列的值发挥作用,但全文索引,可以针对值中的某个单词,比如一篇文章中的某个词,然而并没有什么卵用,因为只有myisam以及英文支持,并且效率让人不敢恭维,但是可以用coreseekxunsearch等第三方应用来完成这个需求。

二、创建索引的技巧

  1. 维度高的列创建索引。

    数据列中不重复值出现的个数,这个数量越高,维度就越高。如数据表中存在8行数据a,b ,c,d,a,b,c,d这个表的维度为4。要为维度高的列创建索引,如性别和年龄,那年龄的维度就高于性别。性别这样的列不适合创建索引,因为维度过低。

  2. 对 where,on,group by,order by 中出现的列使用索引。

  3. 对较小的数据列使用索引,这样会使索引文件更小,同时内存4、中也可以装载更多的索引键。

  4. 为较长的字符串使用前缀索引。

  5. 不要过多创建索引,除了增加额外的磁盘空间外,对于DML操作的速度影响很大,因为其每增删改一次就得从新建立索引。

  6. 使用组合索引,可以减少文件索引大小,在使用时速度要优于多个单列索引。

你可能感兴趣的:(mysql,数据库)