1

最小IDを選択するためにこのクエリがあります。最初の数回のクリックでは問題なく動作しているように見えますが、このクエリを呼び出すボタンをクリックし続けると、非常に遅くなります。

このクエリの回避策はありますか?

"select min(t1.blog_id) as min_id 
 FROM 
       (SELECT blog_id FROM myblogs_view 
        where blog_id<'$id' ORDER BY blog_id DESC LIMIT 10) as t1";
4

2 に答える 2

1

試してみてください

SELECT MIN(blog_id) AS min_id
FROM myblogs_view
WHERE blog_id < '$id'
GROUP BY blog_id

列にインデックスがありblog_idますか?

一般に、遅いクエリを処理している場合、このEXPLAINコマンドを使用して、MySQL がクエリを実行する方法を確認できます。

于 2011-04-30T10:04:22.853 に答える
0

追加したいことが1つあります。ページネーションにクエリを使用する場合 は、LIMIT句に大きなオフセットを使用してMySQLクエリを高速化するにはどうすればよいですか。

なぜそれが関連しているのかと疑問に思うかもしれません。次のページをクリックし続けた後、クエリの実行が遅くなると説明しました。これは、大きなオフセットに達した場合に発生する可能性があります。私の推測では、クエリを使用してオフセットを計算し、それを使用して、制限オフセットクエリで関連するレコードをフェッチします。あれは正しいですか?もしそうなら、あなたの他のクエリは私が提供したリンクから利益を得るかもしれません(私はその答えの著者ではありません、クレジットが必要な場合はクレジットを与えてください)。

于 2011-04-30T11:07:28.380 に答える