【Mysql】复合主键的索引

这篇具有很好参考价值的文章主要介绍了【Mysql】复合主键的索引。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

复合主键在where中使用查询的时候到底走不走索引呢?例如下表:

create table index_test
(
    a int not null,
    b int not null,
    c int not null,
    d int null,
    primary key (a, b, c)
);

当执行以下SQL的时候到底走不走索引呢?

  1. SELECT * FROM index_test WHERE a = 1;

     

  2. SELECT * FROM index_test WHERE a = 1 AND b = 1;

     

  3. SELECT * FROM index_test WHERE a = 1 AND b = 1 AND c = 1;

     

  4. SELECT * FROM index_test WHERE b = 1;

     

  5. SELECT * FROM index_test WHERE b = 1 AND c = 1;

     

  6. SELECT * FROM index_test WHERE a = 1 AND c = 1;

     

Explain结果:

  1. 使用索引

    【Mysql】复合主键的索引

     

  2. 使用索引

    【Mysql】复合主键的索引

     

  3. 使用索引

    【Mysql】复合主键的索引

     

  4. 不使用索引

    【Mysql】复合主键的索引

     

  5. 不使用索引

    【Mysql】复合主键的索引

     

  6. 使用索引

    【Mysql】复合主键的索引

     

结论:Mysql复合主键的顺序十分重要,WHERE查询条件中会按列匹配复合主键,匹配上则使用索引直到匹配不上为止。例如上表,WHERE条件中有a则使用a的索引,有a,b则使用a,b的索引;如果没有a,只有b或c,则不走索引;有a,中间无b,有c则只使用a的索引。文章来源地址https://www.toymoban.com/news/detail-424862.html

到了这里,关于【Mysql】复合主键的索引的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【面试】Mysql主键索引普通索引索引和唯一索引的区别是什么?

    在 MySQL 中, 索引是在存储引擎层实现的, 所以并没有统⼀的索引标准, 由于 InnoDB 存储引擎在 MySQL数据库中使⽤最为⼴泛, 下⾯以 InnoDB 为例来分析⼀下其中的索引模型.在 InnoDB 中, 表都是根据主键顺序以索引的形式存放的, InnoDB 使⽤了 B+ 树索引模型,所以数据都是存储在 B+ 树

    2023年04月17日
    浏览(44)
  • Mysql 索引(三)—— 不同索引的创建方式(主键索引、普通索引、唯一键索引)

    了解了主键索引的底层原理,主键索引其实就是 根据主键字段建立相关的数据结构 (B+树),此后在 使用主键字段作为条件查询时,会直接根据主键查找B+树的叶子结点。 除了 主键索引外,普通索引和唯一键索引也是如此,只不过普通索引要稍微绕一点,下面会具体介绍。

    2024年02月03日
    浏览(30)
  • 【后端面经】MySQL主键、唯一索引、联合索引的区别和作用

    目录 0. 简介 1. 主键 2. 唯一索引 3. 联合索引 4. 索引对数据库操作的影响 5. 其他索引 5.1 普通索引 5.2 全文索引 5.3 前缀索引 6. 总结 7. 参考资料 索引是一类特殊的 文件 ,用来存储检索信息,使数据库查找更加快速。 主键是一类特殊的唯一索引,选择某一列元素作为主键,用

    2024年02月09日
    浏览(35)
  • 主键、外键、建表范式、MySQL索引、用户管理

    1.1 问题 完成如下练习: 练习主键的创建、查看、删除、添加、验证主键 练习复合主键的使用 练习与auto_increment连用的效果 1.2 方案 主键使用规则: 表头值不允许重复,不允许赋NULL值 一个表中只能有一个primary key 表头 多个表头做主键,称为复合主键,必须一起创建和删除

    2024年01月16日
    浏览(33)
  • mysql索引--普通索引,唯一索引,主键索引,参照完整性约束,数据完整性约束

    -- 方法1:create index -- 对employee表的员工部门号列创建普通索引depart_ind -- create index depart_ind on employees(员工部门号); -- 对employee表的姓名和地址列创建复合索引ad_ind; -- create index ad_ind on employees(姓名,地址); -- 对departments表的部门名称列创建唯一索引un_ind; -- create unique index un_ind

    2023年04月21日
    浏览(35)
  • 主键和外键的含义及区别

    表中经常有一个列或多个列的组合,其值能唯一的标识表中的每一行。这样的一列或多列称为表的主键。 外键:用来表示表与表之间联系,是表中的一个列。 主键和外键都是用于维护数据库完整性的一种机制。 1、主键是唯一标识一条记录,不能重复,不允许为空;而外键可

    2024年02月12日
    浏览(28)
  • mysql的主键索引为什么不能null

    这是一个非常奇怪且有趣的问题。可以通过官方文档进行解读 https://dev.mysql.com/doc/refman/5.7/en/glossary.html A special value in SQL, indicating the absence of data. Any arithmetic operation or equality test involving a NULL value, in turn produces a NULL result. (Thus it is similar to the IEEE floating-point concept of NaN, “not

    2024年02月14日
    浏览(50)
  • 联合主键的用法及注意事项

    联合主键(Composite Primary Key)是一种在数据库表中使用多个字段组合作为主键的方式。这些字段的组合必须是唯一的,用于唯一标识一条记录。在本文中,我们将详细介绍联合主键的用法及注意事项。 联合主键的用法 在实际的应用中,联合主键通常被用于需要多个字段共同

    2024年02月04日
    浏览(35)
  • 一文彻底搞清楚MySQL的主键、外键、约束和各种索引

    主键用于唯一标识表中每一行数据,外键用于建立表与表之间关联关系,约束用于限制表中数据的规则,索引用于加速查询。 主键是一种用于唯一标识表中每一行数据的标识符。在Mysql中,主键可以是一个或多个列的组合,但是必须满足以下条件: 主键列的值必须唯一,不能

    2024年02月08日
    浏览(30)
  • 关于Java中@Transient主键的作用的一些介绍

    @Transient 主下面是关于 @Transient 主键的使用方法、代码案例以及与 transient 的区别,以及一些实用场景的详细介绍。 在实体类中,通常需要将某些字段标记为主键,并将其映射到数据库中的主键字段。但是,有时候我们可能希望某个字段在实体类中作为主键使用,但不

    2024年02月10日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包