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

月ごとのMySQLテーブルパーティション

    マニュアルで説明されているように: http://dev.mysql .com / doc / refman / 5.6 / en / partitioning-overview.html

    これは、月の出力をハッシュ分割することで簡単に可能になります。

    CREATE TABLE ti (id INT, amount DECIMAL(7,2), tr_date DATE)
        ENGINE=INNODB
        PARTITION BY HASH( MONTH(tr_date) )
        PARTITIONS 6;
    

    これは月ごとにのみパーティション化され、年ごとにはパーティション化されないことに注意してください。また、この例では6つのパーティション(つまり6か月)しかありません。

    また、既存のテーブルをパーティション化する場合(手動: https://dev.mysql.com/doc/refman/5.7/en/alter-table-partition-operations.html ):

    ALTER TABLE ti
        PARTITION BY HASH( MONTH(tr_date) )
        PARTITIONS 6;
    

    クエリは、テーブル全体から実行できます。

    SELECT * from ti;
    

    または特定のパーティションから:

    SELECT * from ti PARTITION (HASH(MONTH(some_date)));
    


    1. MySQL-相関サブクエリで集合データを制限する場合のネストされたサブクエリの代替

    2. リモートサーバーへのmysqli_connect

    3. データベースを最適化するためのMySQLパフォーマンスチューニングのヒント

    4. Cloud9 postgres