特徴

InnoDBの進化

  • InnoDBがデフォルトのストレージエンジンに

データ圧縮

  • 圧縮されたテーブルに対して普通にSELECT/INSERT/UPDATE/DELETEを行うことが可能
  • 圧縮されたサイズはMyISAMよりも小さくなる
  • my.cnf の設定
    innodb_file_format = Barracuda
    innodb_file_per_table = 1
  • 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
  • 以下のようなエラーが出たら「yum install ncurses-devel」を実行し、CMakeCache?.txt を削除してから再度 cmake を実効
    Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
$ 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を参照のこと)
  • データベース初期化
    $ /usr/local/mysql-5.5/scripts/mysql_install_db --basedir=/usr/local/mysql-5.5 --datadir=/var/mysql-5.5/data

設定

my.cnf


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