だから私はユーザーのお気に入りのテーブルを持っています。数百万行あります。
id
現在、 (pk)userId
との3 つの列しかありませんsomeFkRef
。userId
ユーザーのお気に入りをすばやく選択できるようにするためのインデックスがあります。
現在、これらid
は事実上単なる挿入順序で並べられています。ユーザーがお気に入りを並べ替える機会をユーザーに提供したいと考えています。これはおそらく、ある種のドラッグ アンド ドロップ操作を介して行われます。
これに対する私の最初の (そして単純だと思う) アプローチは、単にorder
列と複合インデックスをuserId
,に追加することorder
です。ただし、リフレクションでは、ユーザーがアイテムをリスト上である程度移動すると、アイテムの開始位置と終了位置の間のすべての中間行でorder
列を再計算する必要があるため、インデックスも再計算されます。
これは (ほとんどの場合) 悪いことです。
どれだけ悪いかを正確に定量化するために何年も費やす前に、上記で説明した種類の操作でより安価に操作できる、より優れたテーブルベースの表現があるかどうか疑問に思っています。