• MySQL関連のWikiへのリンク
    • MySQL
    • MySQL 5.1
    • MySQL 5.4
    • MySQL/InnoDB
    • MySQL/エラー
    • MySQL/クラスタリング
    • MySQL/サーバ移動
    • MySQL/チューニング
    • MySQL/バージョン
    • MySQL/バックアップ
    • MySQL/プロファイリング
    • MySQL/ベンチマーク
    • MySQL/レプリケーション
    • MySQL/ロック
    • MySQL/制限

5.0からのアップグレード

InnoDBの性能向上

パーティショニング機能

概要

  • パーティショニングとは、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
  • 分割したテーブルをさらに分割するサブパーティションの機能もあり

注意点

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

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

日付でパーティショニング

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つに分割

イベントスケジューラ

MySQL Cluster


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-04-09 (日) 20:46:59 (2567d)