私はそこに約1,000,000の製品を持つサイトを構築しました。私はすべての製品へのリンクを含むサイトマップのセットを構築したいと思います。サイトマップには最大50,000件のリンクが含まれている可能性があることを理解していますので、20個のサイトマップを作成することを計画しています。順番に、1,000,000レコードのMYSQLテーブルを実行しますか?
私はこれを一連のSQL文で実行したいと考えています。私の計画:1,000個のSQL文.1000個のSQL文。それぞれ1,000個の製品をプルします。 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秒にジャンプしました!それ以降のすべてのステートメントは、同様に実行に時間がかかりました。
もう1つは、の引数をLIMITに引き上げることでしたが、同じ問題が発生しました。
援助を歓迎します。ありがとうございました。
サイトマップを動的に作成するのではなく、クエリからサイトマップファイルを生成することを検討してください。 –
それは私がそれを正確に処理した方法です。 :) – oyvey