3.23 の機能セットは、このバージョンより凍結される。新しい機能は 4.0 ブランチで導入され、3.23 ブランチではバグの修正のみが行われる。
CPU バウンドの結合クエリの多くで、実行が速くなった。Windows では、その他の CPU バウンドのクエリも実行が速くなった。
              新たな SQL コマンド SHOW INNODB
              STATUS によって、InnoDB
              モニタの出力がクライアントに返されるようになった。InnoDB
              モニタで、最後に検出されたデッドロックに関する詳細情報が出力されるようになった。
            
InnoDB では、SQL クエリオプティマイザがインデックスのみの範囲スキャンを多用する代わりにフルテーブルスキャンを使用していた。これが修正された。
              BEGIN および
              COMMIT
              がトランザクション周辺のバイナリログに追加されるようになった。
              MySQL
              レプリケーションでトランザクションの境界が考慮されるようになった。これで、レプリケーションスレーブでユーザに半分のトランザクションが表示されなくなる。
            
クラッシュリカバリで、レプリケーションスレーブがマスタバイナリログのどの位置までリカバリできたかが出力されるようになった。
              新たな設定
              innodb_flush_log_at_trx_commit=2
              によって、InnoDB
              がコミットのたびにオペレーティングシステムのファイルキャッシュにログを書き込むようになった。その速度は、設定
              innodb_flush_log_at_trx_commit=0
              とほぼ同じである。また設定 2
              には、クラッシュが発生してもオペレーティングシステムがクラッシュしなければコミットされたトランザクションが失われないという優れた特徴がある。
              オペレーティングシステムのクラッシュまたは停電が発生した場合は、設定
              2 の安全性が設定 0 より低くなる。
            
ログブロックにチェックサムフィールドが追加された。
              外部キーの規則が考慮されない任意の順序でのテーブルインポートでは、SET
              FOREIGN_KEY_CHECKS=0 が役立つ。
            
              セカンダリインデックスに UNIQUE
              制約を設定している場合に SET
              UNIQUE_CHECKS=0 を指定すると、InnoDB
              へのテーブルのインポートが速くなる。
              このフラグは、入力レコードが UNIQUE
              制約に違反していないことが確実である場合のみ使用できる。
            
              SHOW TABLE STATUS で、想定される
              ON DELETE CASCADE や ON
              DELETE SET NULL
              もテーブルのコメントフィールドに列挙されるようになった。
            
              InnoDB 型のテーブルで CHECK
              TABLE
              を実行すると、すべてのテーブルのハッシュインデックスもチェックされるようになった。
            
              ON DELETE CASCADE または
              SET NULL
              を定義し、親レコードで参照キーを更新すると、InnoDB
              によって子レコードが削除または更新されていた。この動作が変更され、SQL-92
              に準拠するようになった。つまり、エラー
              'Cannot delete parent row'
              が表示されるようになった。
            
              オートインクリメントのアルゴリズムが改善され、最初の挿入または
              SHOW TABLE STATUS
              でテーブルのオートインクリメントカウンタが初期化されるようになった。
              これによって、SHOW TABLE STATUS
              で突然デッドロックが発生することがほぼなくなった。
            
データファイルへの読み取りと書き込みに使用されていた一部のバッファが調整された。 これによって、Linux でバッファなしのローデバイスをデータファイルとして使用できるようになった。
              バグ修正:
              大文字と小文字を変更するだけの目的でテーブルの主キーを更新した場合に、主に
              page0page.ic の 515
              行目でアサートエラーが発生する可能性があった。
            
              バグ修正:
              外部キー制約で参照されているレコードを削除または更新する場合に、外部キーチェックでロック待ちが発生すると、そのチェックから誤った結果が報告されることがある。これは、ON
              DELETE... 操作にも影響する。
            
バグ修正: InnoDB でデッドロックまたはロック待ちタイムアウトエラーが発生すると、InnoDB はトランザクション全体をロールバックするが、MySQL が以前の SQL ステートメントを(InnoDB がそれらをロールバックした後も)バイナリログに書き出す可能性があった。このため、たとえばレプリケートされたデータベース間で同期が取れなくなることがあった。
バグ修正: コミットの途中でデータベースがクラッシュした場合に、リカバリでテーブルスペースのページがリークされることがあった。
              バグ修正: latin1 以外のキャラクタセットを
              my.cnf
              で指定した場合に、マニュアルの記述に反して、外部キー制約の文字列型カラムの長さの指定を参照元テーブルと参照先テーブルで同じにしなければならなかった。
            
              バグ修正: CREATE TABLE
              の実行中に DROP TABLE または
              DROP DATABASE
              を実行すると、失敗する可能性があった。
            
              バグ修正: 32 ビットコンピュータで 2 GB
              を超えるバッファプールを設定した場合に、InnoDB
              が buf0buf.ic の 214
              行目でアサートしていた。
            
バグ修正: 64 ビットコンピュータで、あるカラムに SQL NULL を含んでいるレコードを更新した場合に、UNDO ログと通常のログが破損する可能性があった。
              バグ修正: innodb_log_monitor
              でページに対してロック出力を抑制するとハングが発生していた。
            
バグ修正: HP-UX-10.20 バージョンでは、ミューテックスによって InnoDB コードのあらゆる部分でリーク、競合、クラッシュが発生していた。
              バグ修正: AUTOCOMMIT モードで
              SELECT を実行した直後に
              RENAME TABLE
              を実行すると、RENAME
              が失敗し、MySQL からエラー 1192
              が返されていた。
            
バグ修正: 64 ビットの Solaris でコンパイルすると、InnoDB の起動時にバスエラーが発生していた。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

