mysql 索引最左原则测试执行情况

表结构语句:

CREATE TABLE `t_test_price` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键,自增',
  `activity_id` varchar(20) NOT NULL COMMENT '活动ID',
  `product_code` varchar(32) NOT NULL COMMENT 'product_code',
  `sku_code` varchar(32) NOT NULL COMMENT 'sku_code',
  `country_code` varchar(20) NOT NULL COMMENT '国家编码',
  `activity_price` decimal(18,6) NOT NULL COMMENT '价格',
  `version` int(10) DEFAULT '0' COMMENT '版本标记',
  `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除标记(0-未删除,1-删除)',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`),
  KEY `deleted` (`deleted`) USING BTREE,
  KEY `activity_id` (`activity_id`,`sku_code`,`country_code`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8mb4 COMMENT='测试价格表';

 

索引设计如图:

 

索引使用测试语句及使用情况如下:

EXPLAIN SELECT
    id,
    activity_id,
    sku_code,
    country_code,
    product_code,
    activity_price,
    deleted,
    version,
    create_time,
    modify_time 
FROM
    t_activity_price 
WHERE
-- 使用索引
    deleted = 0 

-- 使用索引
--     deleted = 0 
--     AND activity_id = '161616' 
--     AND sku_code = '2144068394025134' 
--     AND country_code = 'zh-CN'

-- 使用索引
--     activity_id = '161616' 
--     AND sku_code = '2144068394025134' 
--     AND country_code = 'zh-CN'

-- 不使用索引
--     sku_code = '2144068394025134' 
--     AND country_code = 'zh-CN'

-- 不使用索引
--     sku_code = '2144068394025134' 

-- 使用索引
--     activity_id = '161616' 

-- 不使用索引
--     country_code = 'zh-CN'

-- 使用索引
--     country_code = 'zh-CN' 
--     AND sku_code = '2144068394025134' 
--     AND activity_id = '161616' 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

spjhandsomeman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值