"2014-08-10" 更新的行-6ren">
gpt4 book ai didi

mysql - 我的所有 SQL 查询中总是有一个 "WHERE date"。加速?

转载 作者:行者123 更新时间:2023-11-29 01:56:44 25 4
gpt4 key购买 nike

我有一个包含数十万行的大表。然而,只有大约 50,000 行实际上是“事件的”并且是我的查询的一部分,因为我只选择了最近 14 天使用 WHERE crdate > "2014-08-10" 更新的行。因此,为了加快对表的查询速度,我在考虑以下哪个选项(或者您有其他建议?)是最好的:

  1. 我可以删除所有旧条目并将它们插入到“历史”表中,每天/每周运行一个 cronjob。但是,如果我想查询那个历史表,这仍然会使历史表变慢。

  2. 我可以在我的“crdate”列上建立索引。但是我的日期格式是“2014-08-10 06:32:59”,所以我猜是因为它存储了这么多不同的值,所以该索引将非常大(?)并且可能很慢(?)。

对于如何加快对该表的查询,你们有任何其他建议吗?在具有如此多不同值的日期列上设置索引是个坏主意吗?

最佳答案

数据库的第一条规则。始终在您过滤的列上建立索引。

是的,在 crdate 上建立索引。

您也可以并行使用历史表,但请确保您也将索引放在历史表中的 crdate 列上。拥有历史表,将允许您在主表中拥有较小的索引。

关于mysql - 我的所有 SQL 查询中总是有一个 "WHERE date"。加速?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867303/

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