StackOverflowまたはMyLifeIsAverageにアクセスパターンが似ているGrailsWebアプリに取り組んでいます。ユーザーはエントリに投票でき、投票数に基づいてエントリのリストを並べ替えるために投票が使用されます。ソートされた選択クエリが実行されている間に投票を行うことができます。
selectはテーブルの大部分をロックするため、通常のトランザクションロックにより、更新に永久に時間がかかるようです(十分なトラフィックがある場合)。誰かがこのようなデータアクセスパターンでアプリに取り組んだことがありますか?もしそうなら、これらの更新と選択を多かれ少なかれ同時に行うことを許可する方法を見つけましたか?SOのようなサイトがこれにどのようにアプローチするか知っている人はいますか?
私の考えは、ソートされた選択をダーティリードにすることでした。なぜなら、それらが常に完全に最新でなくても許容できるからです。これは、これらの選択と更新のパフォーマンスを改善するための私の唯一のアイデアですが、誰かがもっと良い方法を知っているかもしれないと思いました。