我们必须加快MySQL数据库查询的响应速度,该数据库查询连接两个真正巨大的表(两个都有> 1亿行)。有两个问题:一,查询速度慢。二,结果集大小可以是从零行到几千行。理想情况下,我们希望既加快查询速度又将结果集的大小限制为某个(可调整的)最大值。
任何人都有一种最喜欢的分段表或其他方式,我们可以在哪里完成这个?
在这里寻找想法。
答案 0 :(得分:2)
首先,使用explain
查看是否使用了索引。即使有1亿行,一个索引良好的表也应该表现得非常好。需要一点点了解explain
告诉你什么,但它值得。
如果在执行此操作后仍需要细分,我建议您查看mysql partitioning。确保使用explain partitions
并且查询仅查看少量分区。
答案 1 :(得分:1)
您可以使用LIMIT
限制结果集大小。
SELECT *
FROM YourTable
LIMIT 50;
将显示记录1-50
SELECT *
FROM YourTable
LIMIT 50, 50;
将显示记录51-100
至于加快查询速度,我们需要更多信息。如果要分页结果,您需要运行一次冗长的查询并将结果放在表中,然后从那里分页结果。