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

MySQLでsum()を高速化することは可能ですか?

    いいえ、関数自体を高速化することはできません。ここでの問題は、実際には730万レコードを選択していることです。 MySQLはテーブル全体をスキャンする必要があり、730万はかなり大きな数です。実際、これほど速く終了することに感銘を受けました。

    採用できる戦略は、データをより小さなサブセットに分割し(おそらく日付ごと、月ごと?)、変更されない古いデータの合計を維持することです。合計を定期的に更新できます。全体の値は、合計と、それ以降に追加された新しいデータを追加することで計算できます。これにより、行数が大幅に少なくなります。



    1. MySQL C#テキストエンコーディングの問題

    2. PostgreSQLで行のバイトサイズを見つける

    3. SQL WHERE条件が等しくない?

    4. Zend_Db:SSHトンネルを介してMySQLデータベースに接続する方法は?