スポンサーリンク

レンジパーティショニング

MySQLでのレンジパーティショニングの使い方について説明します。

レンジは、VALUE LESS TAHN オペレータを使って定義します。
CREATE TABLE videos (
		id INT AUTO_INCREMENT key,
		title VARCHAR(64)
		)
PARTITION BY RANGE (id)(
		PARTITION p0 VALUES LESS THAN (5),
		PARTITION p1 VALUES LESS THAN (10),
		PARTITION p2 VALUES LESS THAN (15),
		PARTITION p3 VALUES LESS THAN (20)
		);

パーティション p0 には、idが 1から4の video が格納されます。
5から9は、p1のパーティションに格納されます。
20以上は、入りません。

19個、データを入れます。
insert into videos(title) values("a"),("b"),("c"),("d"),("e"),("f"),("g"),("h"),("i"),("j"),("k"),("l"),("m"),("n"),("o"),("p"),("q"),("r"),("s");

20に対応するパーティションがテーブルにないので、20番目の挿入は失敗します。
mysql> insert into videos(title) values("t");
ERROR 1526 (HY000): Table has no partition for value 20

こういう場合には、最後のパーティションの領域を大きくしてあげます。
p3のパーティションを MAXVALUE とします。
CREATE TABLE videos (
		id INT AUTO_INCREMENT key,
		title VARCHAR(64)
		)
PARTITION BY RANGE (id)(
		PARTITION p0 VALUES LESS THAN (5),
		PARTITION p1 VALUES LESS THAN (10),
		PARTITION p2 VALUES LESS THAN (15),
		PARTITION p3 VALUES LESS THAN MAXVALUE
		);

どこのパーティションから取得したか調べるには、 EXPLAIN PARTITIONS で調べることができます。
mysql> explain partitions select * from videos where id = 1\G
*************************** 1. row ***************************
	   id: 1
  select_type: SIMPLE
	table: videos
   partitions: p0
	 type: const
possible_keys: PRIMARY
	  key: PRIMARY
      key_len: 4
	  ref: const
	 rows: 1
	Extra:
1 row in set (0.00 sec)

パーティションの狭間の場合は、こういう結果になります。
mysql> explain partitions select * from videos where id = 5\G
*************************** 1. row ***************************
	   id: 1
  select_type: SIMPLE
	table: videos
   partitions: p0,p1
	 type: const
possible_keys: PRIMARY
	  key: PRIMARY
      key_len: 4
	  ref: const
	 rows: 1
	Extra:
1 row in set (0.00 sec)

MySQL関連記事
[2008-08-07-2] MySQLが実行したクエリをログに落とす方法
[2008-08-07-1] MySQLがパーティショニングをサポートしているか調べる
[2008-08-05-2] MySQL パーティショニングのタイプ
[2008-08-05-1] MySQL 行ベースレプリケーションのメリットとデメリット
[2008-08-04-2] MySQL ステートメントベースレプリケーションが使えないケース
[2008-08-04-1] MySQL 行ベースバイナリロギング Row-based binary logging
[2008-08-03-2] MySQL 5.1に追加された新機能
[2008-08-03-1] MySQL テーブルにカラムを追加する方法
[2008-08-02-2] Windowsでコマンドでmysqldの起動・停止する方法
[2008-08-02-1] WindowsでApacheとPHPとMySQLを動かす

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー