|
MySQL 5.1.59 リリースノート (日本語翻訳)
機能の追加または変更
・現在は、--with-ndbclusterオプションを configure スクリプトに指定すると、5.1に搭載されているMySQLClusterのバージョンが保守の対象ではないことを示す警告が表示される(代わりに別のMySQLClusterディストリビューションを使用する必要がある)(Bug#49093、Bug#11757091)。
修正されたバグ
・
InnoDB
ストレージエンジン
:この修正により、
InnoDB
テーブルの
VARCHAR(
N
)
カラムの操作パフォーマンスが向上する。ここで
N
は大きな値として宣言されるが、テーブルの実際の文字列値の長さは短い(Bug#12835650)。
・
InnoDB
ストレージエンジン
:
InnoDB
テーブルの
DROPTABLE
コマンドは、テーブル圧縮、パーティショニング、および大きなバッファプールを組み合わせる構成で、速度が非常に遅くなる可能性があった(Bug#12635227、Bug#61188)。
・
InnoDB
ストレージエンジン
:使用されていない関数は、論理を明確にするため、小さなトランザクションに関連する内部
InnoDB
コードから削除された(Bug#12626794、Bug#61240)。
・
InnoDB
ストレージエンジン
:
InnoDB
プラグインから削除された「random
read-ahead
」機能を現在再び使用できる。この機能は特定のワークロードにのみ有用なため、デフォルトではオフになっている。オンにするには、
innodb_random_read_ahead
構成オプションを有効にする。この機能は、場合によりパフォーマンスを向上させたり低下させたりするので、この設定を使用する前に、設定を有効および無効の両方でベンチマークを実行する(Bug#12356373)。
・ パーティショニング :パーティションドテーブルの自動増分カラムが、書き込まれていないときにもチェックされていた。デバッグビルドでは、これが原因でサーバがクラッシュする可能性があった(Bug#11765667、Bug#58655)。
・空文字列のオプション解析コードによってメモリリークが発生した(Bug#12589928)。
・ レプリケーション :破損したテーブルマップイベントの処理を行うと、サーバがクラッシュする可能性があった。これは、Bug#56226で発生する場合と同じで、イベントによって別々のテーブルが同じIDにマップされる場合に、特に発生しやすかった。
現在は、サーバによりテーブルマップイベントが適用される前に、そのテーブルが異なる設定でマップされていたかどうかがチェックされる。もし該当する場合には、エラーが発生し、スレーブSQLスレッドは停止する。テーブルが同じ設定でマップされていた場合、あるいはフィルタリングルールに無視されるようにテーブルが設定されている場合、動作は変更しない。イベントはスキップされ、IDはチェックされない(Bug#44360、Bug#11753004)。
Bug#11763509も参照。
・新旧どちらのバージョンのテーブルも、カラムのデータタイプに関して構造がまったく同じである場合、 ALTERTABLE{MODIFY|CHANGE}...FIRST がカラム名の変更しか行わなかった。その結果、カラム名とカラムデータのマッピングが正しくならなかった。古いバージョンとまったく同じ構造で新しいバージョンのテーブルを生成するための ALTERTABLEDROPCOLUMN...ADDCOLUMN ステートメントでも、同様のことが発生した(Bug#61493、Bug#12652385)。
・ lower_case_table_names の値が1または2で、データベース名に大文字小文字が混在している場合、そのデータベース名が含まれた完全修飾名でストアドファンクションを呼び出すと失敗した(Bug#60347、Bug#11840395)。
・
WHERE
句で決定的なストアドファンクションを使用して
SELECTDISTINCT
を指定すると、誤った結果になる可能性があった(Bug#59736、Bug#11766594)。
・
MyISAM
テーブルで、正しくないデータをインデックス付きの
GEOMETRY
カラムに挿入しようとすると、テーブルが破損する可能性があった(Bug#57323、Bug#11764487)。
・
ENGINE
オプションを指定しない
CREATETABLE
は、実行時ではなく解析時にデフォルトエンジンを判別していた。そのため、このステートメントがストアドプログラム内で実行され、その間にデフォルトエンジンが変更されていた場合は不正な結果を導いていた(Bug#50614、Bug#11758414)。
・データベース名で限定された名前を使用するストアドルーチンのロードと、そのデータベースの削除の間に競合があるため、以下のような誤ったエラーメッセージが出力された。
Thetablemysql.procismissing,corrupt,orcontainsbaddata
(Bug#47870、Bug#11756013)。
・RPMパッケージを使用してアップグレードを行うと、
test
データベースが再作成されていた。これは、このデータベースがすでにDBAにより削除されていた場合は適切ではない(Bug#45415、Bug#11753896)。