1

「コンテンツ」テーブルには約 10,000,000 行あります。

コンテンツ リストでの並べ替えには、列「register_date」を使用しました。しかし、今は別の目的で「register_date」列を使用したいと考えています。そこで、ソート用に「seq (bigint)」のような新しい列を追加しようとしています。そして、インデックスを seq 列に追加します。

新しい行が追加された場合、「seq」には最大 seq 値が入ります。古い行をリストの先頭に表示する必要がある場合は、'seq' 値を新しい max seq 値に変更します。

この場合、最大シーケンス値の計算、挿入、更新は高価ですか? どの方法がいいのかわかりません。

4

1 に答える 1

3

提案されたseq値が (WHERE句などで) 検索されない場合は、まったくインデックスを作成しないでください。検索されないが頻繁に更新されるものをインデックス化すると、パフォーマンスが低下します。

ほとんどの取得結果がテーブルの一部であるSORT BY seq限り、インデックスなしで効率的に並べ替えを管理できます。大きな問題は、どの時点でインデックスを作成する意味があるのか​​ということです。それに答えるには、いくつかのベンチマークが必要です。

于 2012-06-12T04:26:21.603 に答える