#freeze
-MySQL関連のWikiへのリンク
--[[MySQL:http://wiki.gashimax.com/index.php?MySQL]]
--MySQL 5.1
--MySQL 5.4
--MySQL/InnoDB
--MySQL/エラー
--MySQL/クラスタリング
--MySQL/サーバ移動
--MySQL/チューニング
--MySQL/バージョン
--MySQL/バックアップ
--MySQL/プロファイリング
--MySQL/ベンチマーク
--MySQL/レプリケーション
--MySQL/ロック
--MySQL/制限
----

-[[第1回:ここが新しい!MySQL 5.1:http://www.thinkit.co.jp/article/95/1/]]
-[[MySQL AB のディレクターが明かす「MySQL 5.1」の魅力:http://techtarget.itmedia.co.jp/tt/news/0712/20/news03.html]]
-[[MySQL 5.1.x の新機能 @ カイハツニッキ:http://diary.eth.jp/?date=20060617]]
-[[「MySQL 5.1」リリース--バグの多さを警告する声も:http://japan.zdnet.com/news/devsys/story/0,2000056182,20384548,00.htm]]

* 5.0からのアップグレード [#r7a24cd6]
-[[MySQL 5.0 から 5.1 へのアップグレード:http://dev.mysql.com/doc/refman/5.1/ja/upgrading-from-5-0.html]]

* InnoDBの性能向上 [#b96a5e82]
-[[MySQL 5.1 InnoDBの性能評価――バージョン5.0からの劇的な性能向上を計測する:http://gihyo.jp/dev/column/01/database/2008/062401]]

* パーティショニング機能 [#p3cc394f]
-[[MySQL 5.1 リファレンスマニュアル - 15 パーティショニング:http://dev.mysql.com/doc/refman/5.1/ja/partitioning.html]]

-[[【MySQLウォッチ】第40回 パーティショニングで高速化し大量データに備える:http://itpro.nikkeibp.co.jp/article/COLUMN/20080710/310540/?ST=oss&P=1]]
-[[パーティショニング機能:http://d.hatena.ne.jp/mir/20070208/p2]]


** 概要 [#r05f43c5]
-パーティショニングとは、1つのテーブルを列値や行値の条件で論理的に区分けして管理することだ。つまり、データ全体ではなく、細かくパーティショニングされたテーブルを対象にクエリを実行するため応答速度が速い。
--MySQL 5.1では、カラム値によってテーブルを行単位で区分けする「水平パーティショニング」のみに対応。Range/List/Hash/Keyという4つの関数タイプで区分けできる。

-パーティショニングは以下の4種類
--RANGEパーティショニング ... カラムの値の範囲をパーティションごとに設定するものです。
--LISTパーティショニング ... パーティションに振り分けられるべき値を直接指定(リストアップ)するものです。
--HASHパーティショニング ... 整数値のカラムに対してMOD()関数(割り算の余り)によりパーティションの振り分けを行うものです。
--KEYパーティショニング ... 文字列のカラムに対してPASSWORD()関数により算出されるハッシュ値を用いる。

-パーティショニングには以下の制約がある
-全てのパーティションで同じストレージエンジンを使用する必要あり
-外部キーが使用できない

-実際にパーティションがうまく使われているかどうかを確認するには、EXPLAIN PARTITIONSコマンドを利用(例:mysql> EXPLAIN PARTITIONS SELECT ...(略)...;)
--partitions の欄に処理で使用したパーティションが表示される
-1テーブル当たりの最大分割数は1024
-分割したテーブルをさらに分割するサブパーティションの機能もあり

** 注意点 [#l8d037bc]
「パーティションの区切りの基準になるカラムはプライマリキーで指定しているもの」という制約があるので、必要であればプライマリキーを変更する。

 ALTER TABLE entries DROP PRIMARY KEY, ADD PRIMARY KEY ([従来指定カラム1],[従来指定カラム2], ... ,[パーティショニングに使いたいカラム]);

** 日付でパーティショニング [#g14e155a]
 CREATE TABLE members (
     firstname VARCHAR(25) NOT NULL,
     lastname VARCHAR(25) NOT NULL,
     username VARCHAR(16) NOT NULL,
     email VARCHAR(35),
     joined DATE NOT NULL
 )
 PARTITION BY KEY(joined) ... 分割キーはカラムjoinedの値
 PARTITIONS 6; ... 6つに分割

* イベントスケジューラ [#r31f6300]

* MySQL Cluster [#h3cb87a6]
-[[【MySQLウォッチ】第28回 MySQL 5.1期待のクラスタリング機能:http://itpro.nikkeibp.co.jp/article/COLUMN/20060715/243478/]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS