gpt4 book ai didi

mysql - 按 id 排序的复合索引的并发查询速度非常慢

转载 作者:行者123 更新时间:2023-11-30 21:44:12 26 4
gpt4 key购买 nike

我有一个定义如下的表:

| book | CREATE TABLE `book` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`provider_id` int(10) unsigned DEFAULT '0',
`source_id` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
`title` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`description` longtext COLLATE utf8_unicode_ci,
PRIMARY KEY (`id`),
UNIQUE KEY `provider` (`provider_id`,`source_id`),
KEY `idx_source_id` (`source_id`),
) ENGINE=InnoDB AUTO_INCREMENT=1605425 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |

当有大约 10 个并发读取时,使用以下 sql:

SELECT * FROM `book`  WHERE (provider_id = '1' AND source_id = '1037122800') ORDER BY `book`.`id` ASC LIMIT 1  

它变慢了,大约需要 100 毫秒。

但是如果我把它改成

SELECT * FROM `book`  WHERE (provider_id = '1' AND source_id = '221630001') LIMIT 1  

那就正常了,需要好几个ms。

我不明白为什么按 id 添加订单会使查询变慢?谁能解释一下?

最佳答案

尝试添加所需的列(选择列名,..)而不是 * 或引用此。

Why is my SQL Server ORDER BY slow despite the ordered column being indexed?

关于mysql - 按 id 排序的复合索引的并发查询速度非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50206807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com