|
MySQL 5.5.23 リリースノート (日本語翻訳)
機能の追加と変更
・ RPMパッケージ MySQL-shared-compat を使用して、RedHat提供のRPMパッケージ mysql-*-5.1 をOracle提供の MySQL-*-5.5 パッケージに移行できる。 MySQL-shared-compat は現在、RedHat mysql-libs パッケージのlibmysqlclient.soファイルを置き換えることによって mysql-libs パッケージを置き換え、 mysql-libs に対する他のパッケージの依存関係を満たす。この変更の影響を受けるのは、RedHat(またはRedHat互換)のRPMパッケージを使用している場合のみである。OracleRPMパッケージを使用している場合は、何も変更点はない(Bug#13867506)。
修正されたバグ
・ セキュリティ修正 :Bug#59533が修正された。
・ パフォーマンス : パーティショニング : InnoDB : InnoDB パーティションドテーブルに対するクエリについてオプティマイザで使用される統計は、そのような各テーブルの最初のパーティションしか使用しないため、誤った実行計画が使用された(Bug#13694811)。
参考:このバグは、Bug#11756867によって導入された。
・ パフォーマンス : InnoDB :この修正で、 バッファプール のスキャンを削除することによって 適応ハッシュインデックス のエントリが削除され、 InnoDB テーブルに対する DROPTABLE の速度が改善する。この改善の効果は、バッファプールがきわめて大きく、 innodb_adaptive_hash_index オプションが有効なシステムで特に顕著である(Bug#13704145、Bug#64284)。
・ 重要な変更 : パーティショニング :クエリキャッシュが、トランザクションコンテキストでパーティションドテーブルに対して正しく機能しない場合があった。このため、パーティションドテーブルを使用するクエリに対しては現在クエリキャッシュが無効化されており、該当するクエリはキャッシュされない。詳細については、 18.5項「RestrictionsandLimitationsonPartitioning」 を参照(Bug#11761296、Bug#53775)。
・ InnoDB : InnoDB テーブルから短時間で大量のデータを削除すると、削除されてマークされたレコードを削除する パージ 操作が停止する可能性があった。この問題によりディスクスペースが無駄に消費される可能性はあったが、データ整合性に問題は発生しない。この問題のためにディスクスペースが不足する場合は、サーバを再起動して回避する。この問題が起きる可能性があるのは32ビットプラットフォームのみである(Bug#13847885)。
・ InnoDB : auto_increment_offset=1 で auto_increment_increment が1より大きく、 innodb_autoinc_lock_mode=1 の場合に、サーバに対して同時に大量の挿入を実行すると、プライマリキーをauto_incrementに設定し、 INSERT ステートメントから除外している場合でも、断続的に次のようなエラーが発生する可能性があった。
・Duplicateentry' value 'forkey'PRIMARY'
回避策として、 auto_increment_offset=1 または innodb_autoinc_lock_mode=0 ("従来式")に設定していた(Bug#13817703、Bug#61209)。
・ InnoDB : InnoDB テーブルに対する TRUNCATETABLE または CREATEINDEX ステートメント、あるいは InnoDB テーブルを含むデータベースに対する DROPDATABASE ステートメントの実行中にサーバがクラッシュすると、インデックスが破損する可能性があり、再起動後にそのテーブルにアクセスした際に次のエラーメッセージが表示された。
・InnoDB:Error:tryingtoloadindex index_name fortable table_name
・InnoDB:buttheindextreehasbeenfreed!
MySQL5.1では、この修正はInnoDBプラグインに適用されるが、組み込みのInnoDBストレージエンジンには適用されない(Bug#12861864、Bug#11766019)。
・ InnoDB : InnoDB テーブルからデータを削除する際、新しく挿入したデータが解放後のディスクブロックを再利用せず、システムのテーブルスペースまたは.ibdファイル( innodb_file_per_table の設定により異なる)が予期しないサイズまで増大する可能性があった。 OPTIMIZETABLE は、場合によって.ibdファイルを圧縮するが、それ以外はしない。解放されたディスクブロックは、追加のデータが挿入された時点で最終的に再利用される(Bug#11766634、Bug#59783)。
・ InnoDB :MySQLサーバをシャットダウンする際、 InnoDB シャットダウンのクリーンアップ操作に長い時間がかかって何も出力されず、サーバがハングするように見える場合があった。
・[Note]mysqld:
・InnoDB:Startingshutdown...
InnoDB:Shutdowncompleted;logsequencenumber...
現在は、"starting"と"completed"の間に進行状況のメッセージが追加で表示される。
InnoDB:Waitingforsrv_monitor_thread(srv_lock_timeout_thread/srv_error_monitor_thread)toexit
InnoDB:Waitingfor%luactivetransactionstoexit
InnoDB:Waitingformasterthread(workerthreads)tobesuspended
InnoDB:Pendingcheckpoint_writes:%lu
InnoDB:Pendinglogflushwrites:%lu
InnoDB:Waitingfor%lubufferpageI/Ostocomplete
InnoDB:Waitingfordirtybufferpagestobeflushed
ファーストシャットダウン と スローシャットダウン のどちらでも、60秒ごとに次のような進行状況メッセージが表示される。
InnoDB:Waitingfor%lutablestobedropped
スローシャットダウンの場合、特定のフェーズに通常より長くかかる場合には2つのメッセージが追加で出力される。
InnoDB:Waitingfor%luundologstobepurged
InnoDB:numberofpagesjustpurged:%lu
InnoDB:Waitingforchangebuffermergetocomplete\n
InnoDB:numberofbytesofchangebufferjustmerged:%lu
(Bug#11755873、Bug#47707)
・ レプリケーション :以前は、ポートの設定が正しくない場合やまったく設定されていない場合でも、 SHOWSLAVEHOSTS の出力で Port カラムに表示されるデフォルト値が3306だった。現在は、スレーブポートが設定されていない場合、スレーブが使用する実際のポートが表示される。この変更は、 --report-port サーバオプションで表示されるデフォルトにも影響する(Bug#13333431)。
・ レプリケーション : --relay-log-space-limit オプションが無視されることがあった。
具体的に言うと、SQLスレッドがスリープするとき、I/Oスレッドはイベントをさらにキューに追加できるため、リレーログのスペース制限がバイパスされることがあった。またキューのイベント数が多くなってリレーログのローテーションが必要な段階を超えてしまう可能性があった。現在では、このような場合、SQLスレッドはI/Oスレッドのローテーションが必要かどうかをチェックし、SQLスレッドがログをパージできる(したがってスペースを解放する)ようになっている。
ただし、SQLスレッドがトランザクションを実行中の場合はログをパージできず、トランザクションが完了するまで追加のイベントを要求できるだけである。トランザクションが完了すると、SQLスレッドはただちにI/Oスレッドのローテーションを命令できる(Bug#12400313、Bug#64503)。
参考:Bug#13806492も参照。
・ パフォーマンススキーマの内部でスレッドの無限ループが発生し、サーバが応答しなくなる可能性があった(Bug#13898343)。
・ ストアドプログラムが正しくキャッシュされないと、ストアドプログラム内部で GROUPBY 句を含むステートメントが、プログラム呼び出しごとに異なる結果を返す可能性があった(Bug#13805127)。
・ スレーブサーバ上のストアドプロシージャ内でSQLの NO_BACKSLASH_ESCAPES モードが誤って処理され、レプリケーションに失敗する可能性があった(Bug#12601974)。
・ SAVEPOINT ステートメントが、誤って XA トランザクションで許可されなかった(Bug#64374、Bug#13737343)。
参考:Bug#11766752も参照。
・ Windowsファイル名で、パフォーマンススキーマのバックスラッシュ表示が正しくなかった(二重に表示された)(Bug#63339、Bug#13417446)。
・ SHOW ステートメントがストアドプロシージャ名、ストアドファンクション名、およびイベント名を処理する際に、大文字小文字が区別されていた(Bug#56224、Bug#11763507)。