Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql联合索引最左匹配原则

作者:翔龙天下   发布日期:2026-07-27   浏览:74

-- 示例代码:创建一个包含联合索引的表,并演示最左匹配原则

-- 创建一个示例表,包含两个字段并创建联合索引
CREATE TABLE example_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    column1 INT NOT NULL,
    column2 INT NOT NULL,
    INDEX idx_column1_column2 (column1, column2)
);

-- 插入一些示例数据
INSERT INTO example_table (column1, column2) VALUES (1, 10), (2, 20), (3, 30), (4, 40);

-- 查询1:使用联合索引的第一个字段进行查询,符合最左匹配原则
EXPLAIN SELECT * FROM example_table WHERE column1 = 2;

-- 查询2:使用联合索引的前两个字段进行查询,也符合最左匹配原则
EXPLAIN SELECT * FROM example_table WHERE column1 = 3 AND column2 = 30;

-- 查询3:只使用联合索引的第二个字段进行查询,不符合最左匹配原则
EXPLAIN SELECT * FROM example_table WHERE column2 = 40;

解释说明:

  • 联合索引:在 example_table 表中,我们为 column1column2 创建了一个联合索引 idx_column1_column2
  • 最左匹配原则:MySQL 的联合索引遵循最左匹配原则,即查询条件中必须包含索引中的最左列或连续多列才能有效利用索引。
    • 查询1 使用了联合索引的第一个字段 column1,因此可以有效利用索引。
    • 查询2 使用了联合索引的前两个字段 column1column2,同样可以有效利用索引。
    • 查询3 只使用了联合索引的第二个字段 column2,这不符合最左匹配原则,因此无法有效利用索引。

上一篇:centos 安装mysql5.7

下一篇:mysql curdate()

大家都在看

mysql二级索引

mysqlavg函数保留小数

mysql显示表内容

mysql收集表统计信息

mysql经纬度距离计算

mysql 加密

mysql大小写转换函数

存储过程mysql

mysql 1265

mysql with语句

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站