sql >> データベース >  >> RDS >> Mysql

3つの異なる列の最大値で並べ替える

    かもしれません 選択クエリで実行できる(おそらくcase whenのようなものを使用する) order byで許可されているかどうかはわかりませんが 句自体、DBMSに応じてYMMV)が、データベースを適切に拡張してテーブルを大きくしたい場合(「競馬で片足の豚のパフォーマンスがない」場合は、行ごとの計算を使用することはめったにありません」 、DBAの1つが雄弁に言っているように)

    このような状況では、最大値を保持する追加の(インデックス付き)列を設定し、挿入/更新トリガーを使用してその新しい列を他の3つの最大値に強制することにより、データの整合性が維持されるようにします。

    ほとんどのデータベーステーブルは書き込まれるよりもはるかに頻繁に読み取られるため、これにより、すべての読み取りで計算のコストが償却されます。単一のインデックス付き列で注文しているため、データが更新され、クエリが目がくらむほど速くなる場合にのみ、コストが負担されます。

    select f1, f2, f3 from t order by fmax desc;
    


    1. 1対多の関係でのDjangoクエリ

    2. mysqlの同じテーブルの行を比較します

    3. スケーリングしないUIデザインパターン

    4. パーティションがSQLServer(T-SQL)で圧縮されているかどうかを確認する