对大型MySQL表的多个查询

时间:2011-08-05 17:58:52

标签: php mysql sql query-optimization

我有一个包含列ID(int),Number(十进制)和Date(仅限int时间戳)的表。有数百万行。 ID和日期有索引。

在我的许多页面上,我要查询指定日期范围内的数字列表四次或五次(每个查询的范围不同)。

像:

select number,date where date < 111111111 and date >111111100000

我正在查询这些数据集放在几个不同的图表上。 “今天与昨天”,“本月与上个月”,“今年与去年”。

使用sql语句查询最大可能的结果集,然后使用我的编程语言通过排序和拼接数组过滤查询比等待每个0.3秒查询完成更好吗?

还有其他方法可以加快速度吗?

2 个答案:

答案 0 :(得分:3)

这取决于结果集和查询的执行速度。这个问题没有最终答案。

如果你真的需要加快速度,你应该对结果进行基准测试和计算。

但请记住,应该避免使用premature optimization,除非您在代码中实现已经实现的逻辑,其中包含错误等等。

答案 1 :(得分:2)

虽然它可能会导致查询执行得更快,但如果您尝试加载整个记录范围然后以编程方式聚合它,则必须问自己对内存的潜在影响。

基于索引的MySQL优化程度可能会比你想出的任何东西都要好,所以这听起来不错。