gpt4 book ai didi

mysql - 如何优化需要 10 秒才能获取结果的 MySQL 查询

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:43 25 4
gpt4 key购买 nike

我有一个 MySQL 数据库。我有一张 table ,里面有大约 200000 行。

我正在通过这个表进行查询以获取最新的数据。查询

select *
from `db`.`Data`
where
floor = "floor_value" and
date = "date_value" and
timestamp > "time_value"
order by
timestamp DESC
limit 1

获取数据大约需要 9 秒,当表中的行数较少时,获取数据不需要这么长时间。谁能帮我减少查询时间?

最佳答案

尝试添加以下复合索引:

CREATE INDEX idx ON Data (floor, date, timestamp);

该索引应涵盖整个 WHERE 子句,理想情况下也应可用于 ORDER BY 子句。 timestamp 在索引中出现last 的原因是,这允许通过扫描索引生成一组最终的匹配时间戳值。如果我们将 timestamp 放在首位,MySQL 可能必须返回聚集索引以找到匹配的时间戳值集。

关于mysql - 如何优化需要 10 秒才能获取结果的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59133778/

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