-[[MySQL 5.5新機能徹底解説:http://nippondanji.blogspot.com/2010/12/mysql-55.html]]

-[[MySQL5.5 の新機能 - パフォーマンスとスケーラビリティ:http://www-jp.mysql.com/why-mysql/white-papers/mysql-wp-whatsnew-mysql-55.php]]
-[[MySQL 5.5.8 GAリリース:http://d.hatena.ne.jp/sh2/20101216]]
-[[MySQL 5.5 GA版が出たのでSemisynchronous Replicationを使ってみた:http://blog.riywo.com/2010/12/17/102038]]

-[[MySQL 5.5 Updates [PDF]:http://downloads.mysql.com/presentations/jp_seminar_201101/Mysql-5.5-updates.pdf]]
-[[MySQL 5.5 最新情報 [PDF]:http://www.ospn.jp/osc2011-oita/pdf/osc2011oita-MyNA-MySQL55.pdf]]

* 特徴 [#q9a18b2f]
-[[The InnoDB Storage Engine - MySQL 5.5 Reference Manual:http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html]]

** InnoDBの進化 [#gb1c68b9]
-[[MySQL 5.5、進化するInnoDB:http://journal.mycom.co.jp/articles/2010/12/03/mysql-5.5-innodb-new-features/index.html]]

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

** データ圧縮 [#ub52118b]
-[[MySQL InnoDB Pluginのデータ圧縮機能:http://d.hatena.ne.jp/sh2/20090628]]
-[[MySQL InnoDB Pluginのデータ圧縮機能 性能編:http://d.hatena.ne.jp/sh2/20090705]]
-[[Using InnoDB table compression in MySQL 5.5:http://www.infraworks.net/2010/12/using-innodb-table-compression-in-mysql.html]]
-[[Barracuda - あれがのめる:http://blog.sssc.cc/?p=751]]


-圧縮されたテーブルに対して普通にSELECT/INSERT/UPDATE/DELETEを行うことが可能
-圧縮されたサイズはMyISAMよりも小さくなる

-my.cnf の設定
 innodb_file_format = Barracuda
 innodb_file_per_table = 1

-CREATE TABLE、ALTER TABLE 文で「ROW_FORMAT=COMPRESSED」を指定

** 性能とスケーラビリティの向上 [#e5c9c32a]
-トランザクションと接続負荷が高い場合に、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 アクティビティを必要とするアプリケーションのパフォーマンスが向上した

** 準同期レプリケーションのサポート [#bd5bba5e]
-準同期レプリケーションを指定すると、マスターと呼出しチェーン内の少なくとも 1 つのスレーブ 間で、データの整合性と冗長性が確保される
-更新が受け取られてリレー・ログに書き込まれたこ とがレプリケーション・トポロジ内の少なくとも 1 つのスレーブによって確認されてから、親マスターがトランザクション をコミットするように、マスターと任意の数のレプリカ・スレーブが構成される
-タイムアウトが発生した場合、複製元のマスターによって一時的に非同期レプリケーションに切り替えられ、準同期レプリケーション向けに設定されたスレー ブのうちの少なくとも 1 つが遅れを取り戻すまでその状態が維持される
-準同期レプリケーションはマスター・サーバーとスレーブ・サーバーの両方で有効にする必要がある

** 4バイトUTF-8のサポート [#c111d9c6]

** パーティショニング機能の拡充 [#rf9ec7c5]
-テーブルと索引に対するレンジ・パーティション化とリスト・パーティション化が非整数列と日付に対して拡張された
-複数列を使用したパーティション化機能が追加された
-COLUMNS キーワードでパーティションに使うカラムを指定

** PERFORMANCE_SCHEMAの追加 [#a8bff8bd]

* インストール [#o058f1bc]
-インストール方法が以前のMySQLから変わっている(configureではなくcmake)

-[[MySQL 5.5.9 インストール Linux cmake:http://blog.77jp.net/mysql/mysql-5-5-9-%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB-linux-cmake.html]]

** インストール手順 [#gc57b25b]
-[[cmake:http://www.cmake.org/]] がなければインストール (./configure;make;make install)

-[[MySQL Source-Configuration Options:http://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.5/en/source-configuration-options.html]] から必要なオプションを選択
-- -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

* 設定 [#pb21745e]
** my.cnf [#sfc6c723]
-[[MySQL 5.5.x の my.cnf の種類と読み込み順:http://www.goofoo.jp/?p=999]]

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