1.数据库中索引概念
2.索引优点和缺点
1>优点
索引可以避免全表扫描,加快查询速度。多数查询可以仅扫描少量索引页及数据页,而不是遍历所有数据页。一些情况下,索引还可用于避免排序操作。
2>缺点
当插入一条新的记录时,需要额外维护索引数据结构。
3.Mysql中索引的数据结构:BTree或Hash
在Mysql数据库中,为表中的某个字段添加索引有两种数据结构可以选择,一种是BTree,一种是Hash。
mysql索引类型
4.组合索引---最左前缀原则
最左前缀原则:在sql where 子句中一些条件或表达式中出现的列的顺序要保持和多索引的一致或以多列索引顺序出现。只要出现非顺序出现、断层都无法利用到多列索引。
假如:现在对于一个table建立了一个组合索引(A,B,C),那么对于查询时where语句查询条件必须为(A)或(A,B)或(A,B,C)才能使用组合索引用于查询。而(B,C)则无法利用之前加的组合索引。
为什么呢?
因为我们知道mysql为btree索引,对于每一个点索引数据都会维护一个(A,B,C)的复合数据结构,我们在Query的时候一定会以一个字段为第一个匹配,第一个字段匹配之后选取第二个字段进行匹配依次类推。那么对于(B,C)(B)(C)这样的情况没有第一个匹配项,自然不会走索引。