gpt4 book ai didi

mysql - 优化mysql上数据量大的查询

转载 作者:行者123 更新时间:2023-12-01 00:16:57 24 4
gpt4 key购买 nike

我的表中有超过 1000 万条数据,需要提取它才能显示在报告中。数据来源是从csv中提取出来的,都是文本格式。从我的 table 上看是这样的:

enter image description here

我尝试只查询 1000 个限制,它会很快显示,但是如果我要有一个日期过滤器,例如获取 1 天的数据,这将需要大约 25-30 秒:

SELECT STR_TO_DATE(SUBSTRING_INDEX(time, '_', 1), '%m/%d/%Y') FROM myTable
WHERE STR_TO_DATE(SUBSTRING_INDEX(time, '_', 1), '%m/%d/%Y') BETWEEN DATE('2019-9-3') AND DATE('2019-9-3');

我已经尝试在我用于过滤的时间列上创建索引,但仍然得到相同的结果:

enter image description here

有什么建议/意见可以提高提取数据的速度。时间差

最佳答案

当您将函数应用于列作为搜索的一部分时,它不能使用索引,即使您为该列定义了索引也是如此。

您还应该为列使用适当的 DATEDATETIME 数据类型,这将要求日期以 YYYY-MM-DD 格式存储,而不是字符串列MM/DD/YYYY 格式。

如果你正确地存储了日期,你可以这样做:

SELECT DATE(time) FROM myTable
WHERE time >= '2019-09-03' AND time < '2019-09-04';

这将利用索引。

关于mysql - 优化mysql上数据量大的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57780339/

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