gpt4 book ai didi

mysql - MySQL大表数据恢复性能

转载 作者:行者123 更新时间:2023-11-29 12:08:37 25 4
gpt4 key购买 nike

我在 MySQL (InnoDB) 中有一个大表,并且遇到一些性能问题。

这是我的结构:

id        UNSIGNED INT (PK)
tag_id INTEGER (FK to tags)
value FLOAT
datetime DATETIME

UNIQUE INDEX (tag_id, value, datetime)

我每 5 分钟插入 3000 行。目前我有 12.7GB 的信息。

我希望用户看到包含下一个查询或类似查询的图表:

SELECT tags.name, value, datetime
FROM values
INNER JOIN tags ON tag_id = tags.id
WHERE
datetime BETWEEN '2015-01-01' AND '2015-06-30'
AND tag_id = 25
ORDER BY datetime ASC

嗯,有时这个查询很快(不到一秒),有时需要一分钟多。

它在带有最新版本的 MySQL Community 的 Windows 上运行。计算机有 8GB RAM,我更改了此配置:

innodb_buffer_pool_size=3G
innodb_log_file_size=48M
innodb_log_buffer_size=16M

我做错了什么?

最佳答案

对于该 SELECT 的性能:

INDEX(tag_id, datetime)  -- in this order

参见my blog供进一步讨论。

建议

WHERE `datetime` >= '2015-01-01'
AND `datetime` < '2015-01-01' + INTERVAL 6 MONTH

您错过了 1 月 1 日的整个时间和 6 月 30 日的大部分时间。

关于mysql - MySQL大表数据恢复性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31076192/

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