0

mysql selectステートメントを実行すると、以前に非常に多くの行を削除したため、非常に時間がかかります。

テーブルを上からではなく下からスキャンを開始する方法はありますか?

4

2 に答える 2

2

テーブルに追加のインデックスが必要な場合があります。また、OPTIMIZETABLEとANALYZETABLEをときどき発行しても問題ありません。適切なインデックスがあれば、行を削除してもクエリのパフォーマンスに影響はありません。

于 2010-05-18T14:51:27.793 に答える
2

クエリは特定の順序でテーブルをスキャンしません。これは、特定のインデックスを順番にトラバースする場合(たとえば、範囲スキャン)に発生する可能性があります。これは、ORDERBYを使用したことが原因である可能性があります。

データベースはそのようには機能しません。あなたはそのように彼らの行動に頼ることはできません。

全表スキャンを実行している場合、特に最近多くの行を削除した場合は、しばらく時間がかかると予想してください。ただし、行が多い場合はさらに時間がかかります。

クエリが代わりにインデックスを使用していることを確認してください。Explain計画を調べて、索引が使用されていることを確認してください。

于 2010-05-18T21:25:07.460 に答える