我建立了一个网站,其中包含大约 1,000,000 种产品。我想构建一组站点地图,其中将包含所有产品的链接。我知道站点地图可能包含多达 50,000 个链接,因此我的计划是构建 20 个这样的站点地图。
我想用一系列 SQL 语句来完成这个。我的计划:1000 条 SQL 语句,每条可以拉出 1000 个产品。SQL 语句将遵循以下几行:
SELECT name, category, catalog_number FROM product ORDER BY id LIMIT 0, 1000
SELECT name, category, catalog_number FROM product ORDER BY id LIMIT 1000, 1000
SELECT name, category, catalog_number FROM product ORDER BY id LIMIT 2000, 1000
SELECT name, category, catalog_number FROM product ORDER BY id LIMIT 3000, 1000
等等。
问题是随着 LIMIT 的第一个参数(偏移量)的增长,每个 sql 执行的时间增长得非常快!具体来说,当 LIMIT 的第一个参数小于 28000 时,语句在 0.3 秒内执行。但是当我尝试时:
SELECT name, category, catalog_number FROM product ORDER BY id LIMIT 29000, 1000
执行语句所需的时间跃升至 30 秒!之后的每条语句都需要同样长的时间来执行。
我尝试的另一件事是将第二个参数增加到 LIMIT - 但发生了同样的问题。
欢迎任何帮助。谢谢你。