0

日時列の範囲によるパーティションを使用してテーブルをパーティション分割する際に問題が発生しています。

テスト検索結果はまだフル パーティション スキャンです。

この問題に関してネット上でいくつかの投稿を見ましたが、問題を修正または回避する方法があるかどうかはわかりません.

mysql サーバー: Percona 5.5.24-55。

テーブル:

idbigint(20) unsigned NOT NULL, timedatatime unsigned NOT NULL, .... ....

キーid_time( id, time)

エンジン=InnoDB

パーティション ステートメント:

alter table summary_201204 partition by range (day( time)) subpartition by key( id) subpartitions 5 ( パーティション p0 の値が (6) 未満、パーティション p1 の値が (11) 未満、パーティション p2 の値が (16) 未満、パーティション p3 の値が未満(21) 未満、パーティション p4 値が (26) 未満、パーティション p5 値が (MAXVALUE) 未満);

チェック: パーティションの説明 select * from summary_201204 where time< '2012-07-21';

result: p0_p0sp0,p0_p0sp1,p0_p0sp2,p0_p0sp3,p0_p0sp4,p1_p1sp0,p1_p1sp1,p1_p1sp2,p1_p1sp3,p1_p1sp4,p2_p2sp0,p2_p2sp1,p2_p2sp2,p2_p2sp3,p2_p2sp4,p3_p3sp0,p3_p3sp1,p3_p3sp2,p3_p3sp3,p3_p3sp4,p4_p4sp0,p4_p4sp1,p4_p4sp2,p4_p4sp3, p4_p4sp4、p5_p5sp0、p5_p5sp1、p5_p5sp2、p5_p5sp3、p5_p5sp4。

4

1 に答える 1

0

ここに答えがあると思います: 訪問ここにリンクの説明を入力してください

そのため、mysql 公式サイト内のドキュメントは、パーティションに必要なデータ型について十分に明確ではありません。この場合、テーブルのデータ型が datetime の場合は to_seconds を使用する必要がありますが、データ型が DATE の場合は YEA を使用できます

于 2012-08-09T12:21:12.410 に答える