特徴 †
InnoDBの進化 †
データ圧縮 †
- 圧縮されたテーブルに対して普通にSELECT/INSERT/UPDATE/DELETEを行うことが可能
- 圧縮されたサイズはMyISAMよりも小さくなる
- CREATE TABLE、ALTER TABLE 文で「ROW_FORMAT=COMPRESSED」を指定
性能とスケーラビリティの向上 †
- トランザクションと接続負荷が高い場合に、MySQL 5.5 のパフォーマンスとスケーラビリティが 5.1 と比べて 370% 向上している
- Windows 上でのパフォーマンスとスケーラビリティの向上
- デフォルトのスレッド同時実行性の向上
- InnoDB で無制限の数の同時実行スレッドがサポートされるようになった
- バックグラウンドの I/O スレッド制御
- パラメタinnodb_read_io_threads と innodb_write_io_threadsを指定することで、読取り要求と書込み要求に使 用されるバックグラウンド・スレッドの数を指定可能
- マスター・スレッドの I/O 速度の制御
- my.cnf ファイルまたは my.ini ファイルに新しく innodb_io_capacity を指 定することで、InnoDB のバックグラウンド・タスクが使用できる全体的な I/O 能力と帯域幅をユーザーが指定可能
- オペレーティング・システムのメモリ・アロケータの使用制御
- InnoDB 固有のメモリ・アロケータを使用するか、OSのアロケータを利用するかについて、ユーザーが選択できるようになった。my.cnf または my.iniで、innodb_use_sys_malloc の値を指定するだけで制御可能。
- アダプティブ・ハッシュ索引の制御
- 挿入バッファリングの制御
- 高速ロック・アルゴリズムによるスケーラビリティの向上
- グループ・コミットの復活
- リカバリ・パフォーマンスの向上
- 複数のバッファ・プール・インスタンス
- 複数のロールバック・セグメント
- Linux 向けのネイティブ非同期 I/O
- MySQL 5.5 では Linux システムでの I/O リクエストの同時実行性が強化された
- MySQL 5.5 では、Linux お よび Windows ベースのシステムに対して、真のネイティブ非同期 I/O をサポート
- Linux 上に libaio ユーザースペース・ライブラリをインストールする必要がある
- 削除処理と消去処理に対する変更バッファリングの拡張
- ログ・システム・ミューテックスと独立したフラッシュ・リスト・ミューテックスの改善
- 消去スケジューリングの改善
- トランザクション内のメタデータ・ロックの改善
- MySQL がテーブルロック(LOCK_open)を内部的に管理する方法が最適化されたことで、 OLTP アプリケーション、特に頻繁な DDL アクティビティを必要とするアプリケーションのパフォーマンスが向上した
準同期レプリケーションのサポート †
- 準同期レプリケーションを指定すると、マスターと呼出しチェーン内の少なくとも 1 つのスレーブ 間で、データの整合性と冗長性が確保される
- 更新が受け取られてリレー・ログに書き込まれたこ とがレプリケーション・トポロジ内の少なくとも 1 つのスレーブによって確認されてから、親マスターがトランザクション をコミットするように、マスターと任意の数のレプリカ・スレーブが構成される
- タイムアウトが発生した場合、複製元のマスターによって一時的に非同期レプリケーションに切り替えられ、準同期レプリケーション向けに設定されたスレー ブのうちの少なくとも 1 つが遅れを取り戻すまでその状態が維持される
- 準同期レプリケーションはマスター・サーバーとスレーブ・サーバーの両方で有効にする必要がある
4バイトUTF-8のサポート †
パーティショニング機能の拡充 †
- テーブルと索引に対するレンジ・パーティション化とリスト・パーティション化が非整数列と日付に対して拡張された
- 複数列を使用したパーティション化機能が追加された
- COLUMNS キーワードでパーティションに使うカラムを指定
PERFORMANCE_SCHEMAの追加 †
インストール †
- インストール方法が以前のMySQLから変わっている(configureではなくcmake)
インストール手順 †
- cmake がなければインストール (./configure;make;make install)
- MySQL Source-Configuration Options から必要なオプションを選択
- -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5 ... インストール先の指定
- -DDEFAULT_CHARSET=utf8 ... デフォルトのキャラクタセットを指定
- -DDEFAULT_COLLATION=utf8_general_ci ... The default server collation
- -DWITH_EXTRA_CHARSETS=all ... Which extra character sets to include
- -DMYSQL_UNIX_ADDR=/tmp/mysql55.sock ... ソケット名を指定
- -DMYSQL_TCP_PORT=5506 ... ポートを指定
- -DMYSQL_DATADIR=/var/mysql-5.5/data ... MySQLのデータディレクトリ
- -DENABLED_LOCAL_INFILE=1 ... LOAD DATA INFILE文の実効可否を指定
- -DSYSCONFDIR=/usr/local/mysql-5.5/conf ... defaultのmy.cnfのディレクトリを指定したい場合のみ使用
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/tmp/mysql55.sock -DMYSQL_TCP_PORT=5506 -DMYSQL_DATADIR=/var/mysql-5.5/data -DENABLED_LOCAL_INFILE=1
$ make
# make install
# cp /usr/local/mysql-5.5/support-files/mysql.server /etc/init.d/mysql-5.5
- /etc/init.d/mysql-5.5 の編集
- datadir=/var/mysql-5.5/data ... datadirを変える場合
- /etc/my.cnf
- デフォルトで見に行ってしまうので、複数Ver.を動かすときは /etc/my.cnf はリネームしておいて、MySQL各バージョンのトップディレクトリに my.cnf を置いた方が確実(下記、設定のmy.cnfを参照のこと)
設定 †
my.cnf †