私たちは生物学的実験の構成に役立つWebアプリケーションを用意しています(ユーザーは実験を記述し、実験データをアップロードします)。メインページでは、最初の10回の実験を表示します。次に前へ次へ1 2 3 .. 30.合計カウントで効率的なページ番号をつける方法
私は効率的なカウントとページ付けを効率的に行う方法を私にバグします。現在:
大規模なデータコード> 200.000を扱う場合、このスケールはどのようになりますか?私はランダムな実験をテーブルにインポートしようとしましたが、まだそれはかなりok(300.000実験で0.6秒)を実行します。
私が考えたもう1つの代替案は、追加表statistics (column tableName, column recordsCount)
を追加することです。だから、テーブルexperiments
への各挿入の後に私はrecordsCount
をstatistics
に増やします(これは、もちろん、SQLトランザクションを使用して1つのテーブルに挿入し、他のテーブルを更新することを意味します)。その逆もまたdelete文(recordsCount--)になります。
ページングの場合、最も効率的な方法は、をSQLのインデックスとして使用することです。他に良い方法はありますか?
結果がフィルタリングされる場合、例えば、 select * from experiment where name like 'name%'
、テーブルstatistics
のオプションは失敗します。合計カウントをselect count(id) from experiment where name like 'name%'
として取得する必要があります。
アプリケーションはLaravel 3を使用して開発されました。
常に同じことを行うページネーションを開発したいと思います。レコード数は、ページ数やレコードの総数に影響してはなりません。