回表,索引覆盖,最左匹配
数据库索引
回表
通俗的讲:如果索引的列在select所需获得列中就不需要回表(因为在mysql中索引是根据索引列的值进行排序的,所以索引节点中存在该列中的部分值),如果select所需获得列中有大量的非索引列,索引就需要到表中找到相应的列的信息,这就叫回表。
索引覆盖
如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。即只需扫描索引而无须回表
覆盖索引必须要存储索引列的值,而哈希索引、空间索引和全文索引不存储索引列的值,所以mysql只能用B-tree索引做覆盖索引。
mysql不能在索引中执行LIke操作。mysql能在索引中做最左前缀匹配的like比较,但是如果是 通配符开头的like查询,存储引擎就 无法做比较匹配。这种情况下mysql只能提取数据行的值而不是索引值来做比较
最左匹配原则
相关推荐
moyekongling 2020-11-13
chenjiazhu 2020-09-29
liuweiq 2020-09-09
silencehgt 2020-09-07
mrandy 2020-08-15
Accpcjg 2020-08-02
bluetears 2020-07-05
bendan 2020-07-04
minggehenhao 2020-07-04
AngelicaA 2020-07-04
ribavnu 2020-11-16
坚持是一种品质 2020-11-16
kikaylee 2020-10-31
Ida 2020-09-16
sunnyxuebuhui 2020-09-07
西瓜皮儿的皮儿 2020-09-07
LuckyLXG 2020-09-08