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

MYSQLパーティショニングとは何ですか?

    パーティショニングの背後にある考え方は、複数のサーバーを使用するのではなく、1つのテーブルではなく複数のテーブルを使用することです。テーブルを多くのテーブルに分割して、古いデータを1つのサブテーブルに、新しいデータを別のテーブルに含めることができます。次に、データベースは、2番目のテーブルにあることを認識して、新しいデータを要求するクエリを最適化できます。さらに、データの分割方法を定義します。

    MySQLドキュメント の簡単な例 :

    CREATE TABLE employees (
        id INT NOT NULL,
        fname VARCHAR(30),
        lname VARCHAR(30),
        hired DATE NOT NULL DEFAULT '1970-01-01',
        separated DATE NOT NULL DEFAULT '9999-12-31',
        job_code INT,
        store_id INT
    )
    PARTITION BY RANGE ( YEAR(separated) ) (
        PARTITION p0 VALUES LESS THAN (1991),
        PARTITION p1 VALUES LESS THAN (1996),
        PARTITION p2 VALUES LESS THAN (2001),
        PARTITION p3 VALUES LESS THAN MAXVALUE
    );
    

    これにより、スピードアップが可能になります。例:

    1. 単純な方法で古いデータを削除する:

      ALTER TABLE employees DROP PARTITION p0;
      
    2. データベースは次のようなクエリを高速化できます:

      SELECT COUNT(*)
      FROM employees
      WHERE separated BETWEEN '2000-01-01' AND '2000-12-31'
      GROUP BY store_id;
      

    すべてのデータがp2パーティションにのみ保存されていることを知っています。



    1. インデックスの断片化の軽減

    2. データベースの結果を配列に追加する

    3. OracleからPostgreSQLへ—カーソルとltree

    4. MySQLIN条件制限