gpt4 book ai didi

mysql - 对具有 3500 万行的 mysql 表进行非常缓慢的查询

转载 作者:可可西里 更新时间:2023-11-01 07:06:04 24 4
gpt4 key购买 nike

我想弄清楚为什么我的 MySQL 数据库上的查询速度如此之慢。我已经阅读了有关 MySQL 性能的各种内容,各种 SO 问题,但这对我来说仍然是一个谜。

  1. 我正在使用 MySQL 5.6.23-log - MySQL Community Server (GPL)
  2. 我有一个包含大约 3500 万行的表。
  3. 这个表被插入到大约 5 次/秒
  4. 表格如下所示: enter image description here

  5. 我在除 answer_text 之外的所有列上都有索引

我正在运行的查询是:

SELECT answer_id, COUNT(1) 
FROM answers_onsite a
WHERE a.screen_id=384
AND a.timestamp BETWEEN 1462670000000 AND 1463374800000
GROUP BY a.answer_id

这个查询大约需要 20-30 秒,然后给出一个结果集:

enter image description here

有什么见解吗?

编辑

按照要求,我的节目创建表:

CREATE TABLE 'answers_onsite' (
'id' bigint(20) unsigned NOT NULL AUTO_INCREMENT,
'device_id' bigint(20) unsigned NOT NULL,
'survey_id' bigint(20) unsigned NOT NULL,
'answer_set_group' varchar(255) NOT NULL,
'timestamp' bigint(20) unsigned NOT NULL,
'screen_id' bigint(20) unsigned NOT NULL,
'answer_id' bigint(20) unsigned NOT NULL DEFAULT '0',
'answer_text' text,
PRIMARY KEY ('id'),
KEY 'device_id' ('device_id'),
KEY 'survey_id' ('survey_id'),
KEY 'answer_set_group' ('answer_set_group'),
KEY 'timestamp' ('timestamp'),
KEY 'screen_id' ('screen_id'),
KEY 'answer_id' ('answer_id')
) ENGINE=InnoDB AUTO_INCREMENT=35716605 DEFAULT CHARSET=utf8

最佳答案

ALTER TABLE answers_onsite ADD key complex_index (screen_id,`timestamp`,answer_id);

关于mysql - 对具有 3500 万行的 mysql 表进行非常缓慢的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37260040/

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