このセクションでは,既存のパーティションに関する情報を取得する方法(いくつかの方法が可能)について説明します。そのような情報を取得する方法には次のものが含まれます。
显示创建表
ステートメントを使用して,パーティション化されたテーブルの作成に使用されたパーティショニング句を表示する。显示表状态
ステ,トメントを使用して,テ,ブルがパ,ティション化されているかどうかを判別する。INFORMATION_SCHEMA。分区
テ,ブルを照会する。解释分区选择
ステ,トメントを使用して,指定された选择
によってどのパ,ティションが使用されているかを確認する。
この章のほかの場所でも説明しているように,显示创建表
の出力にはパ,ティション化されたテ,ブルの作成に使用された分区的
句が含まれます。例:
mysql >显示创建表trb3 \ G *************************** 1。行 *************************** 表:trb3创建表:创建表“trb3”(“id”int(11)默认为空,“名字”varchar(50)默认为空,“购买”日期默认空)引擎=默认的MyISAM CHARSET = latin1分区中的一个范围(一年(购买))(分区p0值小于(1990)= MyISAM引擎,分区p1值小于(1995)= MyISAM引擎,分区p2值小于(2000)= MyISAM引擎,分区p3值小于(2005)= MyISAM引擎)1行组(0.00秒)
パ,ティション化されたテ,ブルに対する显示表状态
の出力は,Create_options
カラムに文字列分区
が含まれることを除いて,パ,ティション化されていないテ,ブルの場合と同じです。引擎
カラムには,テーブルのすべてのパーティションによって使用されるストレージエンジンの名前が含まれます。(このステトメントにいての詳細は,セクション13.7.5.37 " show table status構文"を参照してください)。
パ,ティションに関する情報は,分区
テ,ブルを含むINFORMATION_SCHEMA
からも取得できます。セクション21.13 " information_schema partitionsテブル"を参照してください。
指定された选择
クエリ,でパ,ティション化されたテ,ブルのどのパ,ティションが使用されるかは,解释分区
を使用して判別できます。分区
キ,ワ,ドは,分区
カラム(どのパ,ティションからのレコ,ドがクエリ,で照合されるかをリストする)を解释
の出力に追加します。
テブルtrb1
が次のように作成されて移入されているとします。
创建表trb1 (id INT,名称VARCHAR(50),购买日期)分区范围(id)(分区p0值小于(3),分区p1值小于(7),分区p2值小于(9),分区p3值小于(11));插入trb1值(1,“桌子组织者”,“2003-10-15”),(2,CD播放器,' 1993-11-05 '),(3,“电视机”,“1996-03-10”),(4,“书架”,“1982-01-10”),(5“健身自行车”,“2004-05-09”),(6,“沙发”,“1987-06-05”),(7,“爆米花机”,“2001-11-22”),(8,“水族馆”,“1992-08-04”),(9,学习桌,“1984-09-16”),(10,熔岩灯,' 1998-12-25 ');
SELECT * FROM trb1;
などのクエリ,でどのパ,ティションが使用されるかを次のように確認できます。
mysql >解释分区SELECT * FROM trb1 \ G *************************** 1。row *************************** id: 1 select_type: SIMPLE table: trb1 partitions: p0,p1,p2,p3 type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 10 Extra: Using filesort
この場合,4のパ。ただし,次のようにパーティショニングキーを使用する制限条件をクエリーに追加すると,一致する値が含まれているパーティションのみがスキャンされることがわかります。
mysql > SELECT *从trb1解释分区id < 5 \ G *************************** 1。row *************************** id: 1 select_type: SIMPLE table: trb1 partitions: p0,p1 type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 10 Extra:使用where
解释分区
では,普通の解释选择
ステ,トメントと同様に,使用されているキ,および使用可能なキ,に関する情報が表示されます。
添加trb1的主键(id)查询OK, 10行受影响(0.03秒)记录:10副本:0警告:0 mysql>解释分区SELECT * FROM trb1 WHERE id < 5\G *************************** 1row *************************** id: 1 select_type: SIMPLE table: trb1 partitions: p0,p1 type: range possible_keys: PRIMARY key: PRIMARY key_len: 4 ref: NULL rows: 7 Extra:使用where
解释分区
に関する次の制約および制限に注目してください。
扩展
および分区
キ,ワ,ドは,同一解释……选择
ステ,トメント内で一緒に使用できません。そうしようとすると構文エラ,になります。クエリ,を検査するためにパ,ティション化されていないテ,ブルで
解释分区
を使用すると,エラ,は発生しませんが,分区
カラムの値は常に零
となります。
解释分区
出力の行
カラムには,テ,ブルの合計行数が表示されます。
セクション13.8.2 " explain構文"も参照してください。