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

MySQLパーティショニング:適切なパーティションを取得しない理由

    HASH分割スキームは、MySQLが任意の数値を独自のハッシュ値に変換することを意味します。 366個のパーティションを定義しました。クエリが次の場合はどうなると思いますか:

    EXPLAIN PARTITIONS SELECT * FROM temp where PartitionID =400?

    この場合、パーティション400がないため、PartitionIDは実際のパーティションのID/名前を意味することはできません。

    さて、私たち2人の間で、MySQLのハッシュ関数が単純なモジュラスであることを知りたいと思うかもしれません。したがって、0はパーティションp0にマップされ、1はパーティションp1にマップされ、400はパーティション34(==400-366)にマップされます。

    一般的に言って、使用されている特定のパーティションの識別にはあまり関心がないはずです。パーティションのバランスが取れていることを知りたいと思うはずです。

    バランスが適切でないと思われる場合は、KEY分割スキームの使用を検討してください。この場合、ハッシュアルゴリズムはチェックサム関数に基づいています。つまり、値はHASHモジュラス分割スキームと比較して「ランダムに」分散されます。




    1. WinRTSystem.Data-SQLに接続します

    2. SQLクエリはPL/SQLで機能しますが、VisualStudioでは機能しません

    3. MySQLデータリーダーの使用

    4. Rails 4 Postgresql配列データ型:値の更新