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