mysql中索引是存储引擎层面用于快速查询找到记录的一种数据结构,索引对性能的影响非常重要,特别是表中数据量很大的时候,正确的索引会极大的提成查询效率。简单理解索引,就相当于一本砖头厚书的目录部分,通过目录可以快速查找到想要找的内容具体所在的页码。
二、索引有哪些种类 1、B-TREE索引 索引的存储结构:B-TREE
B-TREE索引应用范围 索引包含多列时,索引对于多个值得排序依据是create table 时索引的列的顺序,既:key(column1,column2,column3),排序就是按照column1-> column2 -> column3 的顺序,存储也是按照此顺序,应用于如下类型查询更有效:
B-TREE索引使用限制
注:索引列的顺序直接影响着查询是否能够应用索引,在各种条件查询的情况下,一种索引未必能够满足要求,所以往往就需要多组相同列顺序不同的索引来优化性能。 2、HASH索引 基于HASH表结构(Key-Value)实现,只有精确匹配索引全部列的查询才有效,每一行数据,存储引擎都会对所有索引列计算出一个hash code,作为key值存放在hash表中,value存放指向每个数据行的指针。 |