gpt4 book ai didi

MySQL COUNT 非常慢

转载 作者:行者123 更新时间:2023-11-29 11:10:51 26 4
gpt4 key购买 nike

我有这张表:

CREATE TABLE `pertemba_client_raw_data` (
`line_id` int(11) NOT NULL AUTO_INCREMENT,
`feed_id` int(11) NOT NULL COMMENT 'References pertemba_client_feed_log.feed_id',
`data_line` int(11) NOT NULL COMMENT 'Eg. The CSV line number or JSON object index.',
`property_title` varchar(255) NOT NULL COMMENT 'Eg. The CSV header or JSON key.',
`property_value` varchar(255) NOT NULL COMMENT 'Eg. The CSV field value or JSON object value.',
`date_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`line_id`),
UNIQUE KEY `pertemba_client_raw_data_line_id_pk` (`line_id`),
KEY `feed_id` (`feed_id`),
CONSTRAINT `pertemba_client_raw_data_ibfk_1` FOREIGN KEY (`feed_id`) REFERENCES `pertemba_client_feed_log` (`feed_id`)
) ENGINE=InnoDB AUTO_INCREMENT=113121 DEFAULT CHARSET=utf8

目前包含约 110,000 条记录,但将会变得更大。

我有一个针对此表运行的 php 进程,该进程运行速度非常慢 - 目前运行时间为 10 多分钟。当我重复运行 show PROCESSLIST; 进程中的此查询始终运行:

SELECT COUNT(pcr.line_id) AS result FROM pertemba_client_raw_data AS pcr
WHERE pcr.feed_id = :feedId
AND pcr.property_title = :title
AND pcr.property_value = :optionLink

如果有任何可以解决此问题的优化建议,我将不胜感激。

最佳答案

第一步是确定问题。尝试一下

EXPLAIN SELECT COUNT(pcr.line_id) AS result 
FROM pertemba_client_raw_data AS pcr
WHERE pcr.feed_id = :feedId
AND pcr.property_title = :title
AND pcr.property_value = :optionLink

对于您的查询,正如 juergen 所指出的,我相信如果将索引添加到 property_titleproperty_value 作为复合索引,您可以提高性能,例如:

KEY `feed_id` (`feed_id`, `property_title`, `property_value`)

之后尝试再次执行EXPLAIN来确认性能问题是否解决。

关于MySQL COUNT 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40586784/

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