哪家可以做网站,提交百度收录,全国政务网站哪家做的好,谷歌浏览器官网下载安装Mysql中的联合索引、前缀索引、覆盖索引
索引
索引是一种特殊的文件#xff0c;它们包含着对数据表里所有记录的引用指针。更通俗的说#xff0c;数据库索引好比是一本书前面的目录#xff0c;能加快数据库的查询速度。
联合索引
又名复合索引#xff0c;由两个或多个列…Mysql中的联合索引、前缀索引、覆盖索引
索引
索引是一种特殊的文件它们包含着对数据表里所有记录的引用指针。更通俗的说数据库索引好比是一本书前面的目录能加快数据库的查询速度。
联合索引
又名复合索引由两个或多个列的索引。它规定了mysql从左到右地使用索引字段对字段的顺序有一定要求。一个查询可以只使用索引中的一部分更准确地说是最左侧部分最左优先。如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找但不支持 b,c进行查找 .当最左侧字段是常量引用时索引就十分有效。
CREATE TABLE test(a INT, b INT, c INT, KEY(a, b, c));
前缀索引
对于列的值较长比如BLOB、TEXT、VARCHAR就必须建立前缀索引即将值的前一部分作为索引。这样既可以节约空间又可以提高查询效率。但无法使用前缀索引做 ORDER BY 和 GROUP BY也无法使用前缀索引做覆盖扫描。 # 语法ALTER TABLE table_name ADD KEY(column_name(prefix_length));# 示例ALTER TABLE city ADD KEY(cityname(7))
覆盖索引
跟联合索引有点类似就是在查询t的时候只用去读取索引而取得数据无需进行二次查询相关表。这样的索引的叶子节点上面也包含了他们索引的数据。
判断标准使用explain可以通过输出的extra列来判断对于一个索引覆盖查询显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询。