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

列/IDの最後の桁に基づくMysqlテーブルパーティション

    パーティションの作成中にmod関数が許可されているかどうか疑問に思っていたので、

    を使用して実行しました。
    CREATE TABLE ti (id INT, amount DECIMAL(7,2))
    ENGINE=INNODB
    PARTITION BY HASH( MOD(id,10) )
    PARTITIONS 10;
    

    これにより、各IDに10個のパーティションが作成され、IDの最後の桁と同じ番号で終わるパーティションになります

    いくつかの行を追加しました

        INSERT INTO ti VALUES (23123,343.22);
        INSERT INTO ti VALUES (23123,343.22);
        INSERT INTO ti VALUES (23144,343.22);
        INSERT INTO ti VALUES (23114,343.22);
        INSERT INTO ti VALUES (23124,343.22);
        INSERT INTO ti VALUES (23166,343.22);
        INSERT INTO ti VALUES (23116,343.22);
        INSERT INTO ti VALUES (23112,343.22);
        INSERT INTO ti VALUES (23199,343.22);
    

    次にテストしました

     SELECT
      partition_name part,
      partition_expression expr,
      partition_description descr,
      table_rows
    FROM
      INFORMATION_SCHEMA.partitions
    WHERE
      TABLE_SCHEMA = SCHEMA()
      AND TABLE_NAME='ti';
    

    出力:

    part    expr    descr   table_rows
    p0   MOD(id,10) \N  0
    p1   MOD(id,10) \N  0
    p2   MOD(id,10) \N  1
    p3   MOD(id,10) \N  2
    p4   MOD(id,10) \N  3
    p5   MOD(id,10) \N  0
    p6   MOD(id,10) \N  2
    p7   MOD(id,10) \N  0
    p8   MOD(id,10) \N  0
    p9   MOD(id,10) \N  1
    

    正しいリンクのIncognitoを指してくれてありがとう、まさに私が欲しかったのですが、あなたの答えは間違っていました。おそらくあなたはそれを誤解していました



    1. SQLServerのデータベース内のすべてのテーブルを切り捨てる-SQLServer/TSQLチュートリアルパート55

    2. データベースの専門家にとって機械学習が意味すること

    3. タイムスタンプ間隔

    4. ストップワードとMySQLブールフルテキスト