mysql复合索引和组合索引,mysql组合索引数据结构,Mysql之组合索引方法详解

mysql复合索引和组合索引,mysql组合索引数据结构,Mysql之组合索引方法详解

本文主要介绍Mysql的组合索引方法的详细说明。通过示例代码和查询结果非常详细,对大家的学习或工作都有一定的参考价值。有需要的朋友下面跟边肖学习。

对于任何DBMS,索引都是优化的最重要因素。对于少量数据,缺少一个合适的索引影响不大,但是随着数据量的增加,性能会急剧下降。

如果索引多个列(组合索引),列的顺序很重要,MySQL只能有效搜索索引最左边的前缀。例如:

假设有一个复合索引(c1,c2),可以由查询语句select * from t1使用,其中c1=1,c2=2。c1=1的查询select * from t1也可以使用这个索引。但是查询语句select * from t1 where c2=2不能使用这个索引,因为组合索引没有前导列,也就是说如果要使用c2列进行搜索,c1必须等于某个值。

示例:

创建两个表,book(图书表)和bookclass(图书分类表)

从图书b中选择b.ISBN,其中b . CATEGORY _ ID=1;

执行时间:0.053秒

使用explain来分析这个SQL:

Type=ALL Extra=Using where,全表查询不使用索引。

Explain展示了mysql如何使用索引来处理select语句和连接表。它可以帮助选择更好的索引和编写更优化的查询语句。

对于前一个表中的每一行组合,执行完整的表扫描。如果该表是第一个没有用const标记的表,这通常是不好的,在其他情况下通常是非常糟糕的。通常,可以添加更多的索引而不是全部索引,这样就可以根据上一个表中的常数值或列值来检索行。

创建复合索引:

在book上创建索引index _ ISBN(CATEGORY _ ID,ISBN);

再次执行SQL,发现时间缩短到0.009秒

使用explain来分析这个SQL:

Type=ref,Extra=Using index使用索引查询。

Ref对于上一个表中的每个行组合,将从该表中读取具有匹配索引值的所有行。如果联接只使用键最左边的前缀,或者如果键不是唯一键或主键(换句话说,如果联接不能基于关键字选择单个行),则使用ref。如果使用的键只匹配几行,这种连接类型很好。

关于Mysql的组合索引方法的详细解释这篇文章到此为止。关于Mysql的组合索引的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • mysql复合索引和组合索引,mysql组合索引数据结构
  • mysql复合索引和组合索引,mysql复合索引数据结构
  • mysql复合索引和组合索引,mysql复合索引数据结构,MySQL的复合索引总结
  • b+树 多路搜索树,数据结构中树的分类
  • b+树 多路搜索树,数据结构中树的分类,数据结构-树(三):多路搜索树B树、B+树
  • avl树的构造,avl树特性,数据结构之AVL树详解
  • 数据结构c语言哈夫曼树,c语言哈夫曼树的构造,使用C语言详解霍夫曼树数据结构
  • c语言数据结构算法编程库,数据结构 c语言中文网
  • c语言数据结构算法编程库,数据结构 c语言中文网,C语言编程数据结构基础详解小白篇
  • c++纸牌游戏,数据结构纸牌游戏c语言
  • c++纸牌游戏,数据结构纸牌游戏c语言,C语言实战之纸牌游戏
  • ,,c#解析jobject的数据结构
  • ,,javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
  • ,,Java 数据结构与算法系列精讲之背包问题
  • ,,java 数据结构之堆排序(HeapSort)详解及实例
  • 留言与评论(共有 条评论)
       
    验证码: