私は人がテーブルの行を見ることができるようなウェブサイトを持っています(各行は画像です)。 100,000以上の行があります。行の異なるサブセットを表示することができ、異なるソート順で表示することができます。行の1つを表示している間、「次へ」または「前へ」ボタンをクリックすると、リスト内の次の行または前の行に移動できます。MySQLの結果セットの[次へ]ボタンのための効率的なアルゴリズム
ウェブサイトの「次へ」と「前の」機能をどのように実装しますか?
具体的には、最大100,000行以上のリストを返す任意のクエリがあり、誰かが現在表示している行についての情報がわかっている場合、NEXT行を効率的にどのように判断するのですか?
ウェブサイトが若かったときに出てきた解決策の擬似コードは、1000行しかないときにうまくいきましたが、今では100,000行があると思います。
int nextRowId(string query, int currentRowId)
{
array allRowIds = mysql_query(query); // Takes up a lot of memory!
int currentIndex = (index of currentRowId in allRowIds); // Takes time!
return allRowIds[currentIndex+1];
}
あなたはこの問題を考えている一方で、ウェブサイトは、単にそのID(結果セットの現在の行の例えば、位置)、この情報よりも現在の行に関する詳細な情報を保存できることを覚えておいてください次の行のIDを判別するためのヒントとして使用できます。
編集:この以前に言及していないため申し訳ありませんが、これは単なる静的なウェブサイトではありません:行は、多くの場合、リストに追加することができ、行がリストに再注文することができます。 (非常に希少で、行はリストから削除することができます)私はそのようなことについて心配する必要があると思いますが、そうでなければ私を説得することができます。
ありがとうございました!あなたの答えにも両方が当てはまるので、機械の答えに対する私のコメントを見てください。 –