|
MySQL 5.1.68 での変更点( 2013-02-05 )
修正されたバグ
・ InnoDB; パフォーマンス : ログの取り消しに関連する一部のデータ構造が、たとえ特定の条件下でのみ必要とされる場合であっても、クエリ中に不必要に初期化される可能性があった(Bug#14676084)。
・ InnoDB; パフォーマンス : 冗長なテストをスキップすることにより、 圧縮 テーブルに対する読み取り操作が最適化された。関連する変更を 挿入バッファ からマージする必要があるかどうかのチェックが必要以上に呼び出されていた(Bug#14329288、Bug#65886)。
・ InnoDB; パフォーマンス : 作成したばかりのテーブルにクエリを実行した場合、 ルースインデックススキャン が使用されなかった。テーブル上で ALTERTABLE を実行した後はこの問題は解消されていた。修正では、テーブルを最初に作成したときに収集される インデックス統計 の精度を向上し、クエリプランが ALTERTABLE ステートメントによって変更されないようにした(Bug#14200010)。
・ InnoDB; パーティショニング : これまで、パーティションレベルの OPTIMIZE をサポートしていない InnoDB などのストレージエンジンを使用するパーティションドテーブルの1つ以上のパーティションを最適化しようとすると、MySQLはTable does not support optimize, doing recreate + analyze insteadをレポートした後、テーブル全体を作成し直したが、実際には解析が行われていなかった。現在、このような場合、警告メッセージはTable does not support optimize on partitions. All partitions will be rebuilt and analyzedである。加えて、まずパーティションの再構築後、テーブル全体が解析される(Bug#11751825)。
・ InnoDB: バッファプール のいくつかのページが 先読み 要求によって取り込まれたものと間違って認識されたために、ステータス変数 Innodb_buffer_pool_read_ahead_evicted が、予想よりも高い、不正確な値を示す可能性があった(Bug#15859402、Bug#67476)。
・ InnoDB: 文字セットが UTF-8 など可変長であるテーブルに対して CHAR カラムにインデックスを作成する場合、 ROW_FORMAT=REDUNDANT 句でこのテーブルが作成されていると、失敗する可能性があった(Bug#15874001)。
・ InnoDB: ALTERTABLE 操作時に、 InnoDB テーブルに対して クラスタ化されたインデックス をちょうど再構築しているときにサーバがクラッシュした場合、それ以降オリジナルのテーブルにアクセスできなくなる可能性があった。このような操作の例は ALTERTABLE...ADDPRIMARYKEY である。修正では、この操作中にサーバが中断した場合、オリジナルのテーブルを保持する。ただし、オリジナルのテーブルの内容をリストアするために、手動で .ibd ファイル名を変更する必要がある。MySQL5.6以降では#sql-ib$ new_table_id .ibdをデータベースディレクトリ内で table_name .ibdに変更し、MySQL5.6よりも以前でファイル名を変更するテンポラリファイルは table_name #1または#2である(Bug#14669848)。
・ InnoDB: 開いているファイルが多すぎるなど、ファイルシステムレベルのエラーにより、 ALTERTABLE 操作時に未処理のエラーが発生する可能性があった。このエラーはValgrind警告、および次の表明メッセージを伴う可能性があった。
Assertion`! is_set()' failed.
mysqld got signal 6 ;
(Bug#14628410、Bug#16000909)
・ InnoDB: シャットダウン時に、 innodb_purge_threads 構成オプションが1よりも大きい値に設定されていると、以下のエラーが発生し、サーバが途中で中断する可能性があった。
mysqld got signal 11
回避策は、 innodb_log_file_size を大きくし、 innodb_purge_threads=1 を設定することであった。 innodb_purge_threads 構成オプションがないため、エラーが発生する可能性は低かったが、MySQL5.5および5.1に修正がバックポートされた(Bug#14234028)。
・ InnoDB: MySQL5.1のInnoDBプラグインの全サーバリリース、およびMySQL5.5、5.6、それ以降の統合 InnoDB コンポーネントに対する innodb_version 変数の値の更新に一貫性がなかった。 InnoDB とMySQLServerの開発サイクルが完全に統合化され、同期化されたため、現在 innodb_version 変数で返される値は version 変数と同じである(Bug#13463493、Bug#63435)。
・
パーティショニング
:
複数の主キーを持つテーブルにおいて、主キーではない列をキーに用いてパーティションを行った場合に、集約関数とDISTINCTを使うクエリ(例えば
DISTINCT
suchas
SELECT
SUM(DISTINCT
pk_column_1
)FROMtableWHERE
pk_column_2
=
constant
)
使うクエリが正しく動作しない(Bug#14845133)。バグ#14495351も参照する事。またこのバグは#13025132にて紹介された。
・ レプリケーション : 無効な MASTER_LOG_POS 値を使用して CHANGEMASTERTO ステートメントを何度も実行すると、エラーが生じ、場合によってはスレーブでクラッシュが発生する可能性があった。現在、このような場合、ステートメントが失敗し、明確なエラーメッセージが表示されるBug#11764602、Bug#57454)
・ レプリケーション : バイナリログへの書き込み中にディスクがいっぱいになった場合、スペースを手動で解放するまで、サーバがハングする。この後、必要でないときに内部ステータス値が設定されるために、MySQLサーバが失敗する可能性があった。現在、このような場合、このステータスを設定する代わりに、エラーログに警告が書き込まれる(Bug#11753923、Bug#45449)。
・ MicrosoftWindows: ダイナミックなファイル名(コロンを使用)は許可されなくなった。MicrosoftWindowsのADS(AlternateDataStream:代替データストリーム)NTFS機能を使用するスタティックなファイル名は引き続き使用できる(Bug#11761752)。
・ MacOSXおよびWindows上でディレクトリ名処理により、スタックオーバーフローが発生する可能性があった(Bug#16066243)。
・ yaSSLのバッファ処理問題が修正された(Bug#15965288)。
・ 場合によって、 UpdateXML() が間違って NULL を返す可能性があった(Bug#15948580)。
参考:Bug#13007062も参照。
・ メタデータロックおよびテーブル定義のキャッシュルーチンが、受け渡された名前の長さを必ずしもチェックしなかった(Bug#15954872)。
・ クライアント競合が高い間にクエリキャッシュを有効にすると、サーバが終了する可能性があった(Bug#14727815)。
・ サーバにて、ユーザ接続の MAX_CONNECTIONS_PER_HOUR の制限がきかないことがあった。(Bug#14627287)
・ 不明な時間帯指定を CONVERT_TZ() に受け渡すと、メモリリークが発生した(Bug#12347040)。
・ HASH インデックス付きの MEMORY テーブルに対して、 DELETE が該当するすべての行を削除できないことがあった(Bug#51763、Bug#11759445)。
・ mysqld_safe で移植不能な -e テスト構造を使用していた(Bug#67976、Bug#16046140)。
・ UNION 型変換で、符号なし値を符号付き値に間違って変換する可能性があった(Bug#49003、Bug#11757005)。
・ 起動プロセス中、 mysqld がすでに実行している mysqld のPIDファイルを間違って削除する可能性があった(Bug#23790、Bug#11746142)。
参考:Bug#14726272も参照。