0

重複の可能性:
MySQL クエリに制限があり、大きなオフセットが永遠にかかる

私のテーブルには 25,000 行が含まれており、ページネーションを使用してすべての行をページに表示しています。ページ制限が 1 ページあたり 10 行に設定されている場合、各ページが非常に高速に表示されます。ただし、ページ制限サイズを 1 ページあたり 250 行に変更すると、テーブルの読み込み (レコードの表示) に 30 秒から 1 分かかります。使用しているクエリは次のとおりです。

SELECT SQL_CALC_FOUND_ROWS Merchants.*, DataSources.DsISOName, PrName
FROM Merchants 
INNER JOIN DataSources ON MDsID=DsID 
INNER JOIN Processors ON PrID = DsType
ORDER BY MDBA LIMIT 0, 250

これは、最初にページをロードしたときに得られるものです。ページを変更すると制限番号 0、250 が変更されるため、ページ 2 にアクセスすると制限が次のように変更されます。

  LIMIT 250, 500 

私のクエリに問題がある場合は、お知らせください。ページごとに 250 行がフェッチされているときに、テーブルのロードに 1 分かかる理由がわかりません。mysqlテーブルで、さまざまなIDのインデックスを使用してみましたが、速度は同じです。

4

0 に答える 0