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

インデックスを使用してInnoDBでCOUNT(*)のパフォーマンスを最適化する方法

    MySQL 5.1.6以降では、イベントスケジューラ> カウントを統計テーブルに定期的に挿入します。

    まず、カウントを保持するテーブルを作成します:

    CREATE TABLE stats (
    `key` varchar(50) NOT NULL PRIMARY KEY,
    `value` varchar(100) NOT NULL);
    

    次に、テーブルを更新するイベントを作成します。

    CREATE EVENT update_stats
    ON SCHEDULE
      EVERY 5 MINUTE
    DO
      INSERT INTO stats (`key`, `value`)
      VALUES ('data_count', (select count(id) from data))
      ON DUPLICATE KEY UPDATE value=VALUES(value);
    

    完璧ではありませんが、必要なカウントの鮮度と同じ頻度で実行するように簡単に調整できる自己完結型のソリューション(cronジョブやキューなし)を提供します。



    1. マスター高可用性マネージャー(MHA)がクラッシュしました!私は今何をしますか?

    2. OracleGroup-byバグの概要

    3. AndroidSQLiteクエリ-最新の10レコードを取得

    4. 最新のMicrosoftAccess機能に興味がありますか?