InnoDB が ALTER TABLE DROP
              FOREIGN KEY
              をサポートするようになった。外部キーを破棄する場合は、SHOW
              CREATE TABLE
              を使って、内部で生成された外部キー ID
              を検出する必要がある。
            
              SHOW INNODB STATUS
              で、最後に検出された FOREIGN
              KEY エラーおよび UNIQUE
              KEY
              エラーの詳細情報が出力されるようになった。InnoDB
              が CREATE TABLE からエラー 150
              を返した原因がわからない場合は、このステートメントを使って原因を調査できる。
            
              ANALYZE TABLE が
              InnoDB
              型のテーブルでも動作するようになった。このステートメントは、各インデックスツリーをランダムに
              10
              箇所調べ、それに応じてインデックスのカーディナリティの推定値を更新する。これは推定値に過ぎないため、ANALYZE
              TABLE
              を実行するたびに異なる数値が生成される可能性があることに注意する。MySQL
              は、インデックスカーディナリティの推定値を結合の最適化でのみ使用する。適切に最適化されていない結合がある場合は、ANALYZE
              TABLE を試すことができる。
            
              InnoDB
              のグループコミット機能が、MySQL
              のバイナリログがオンになっている場合も動作するようになった。グループコミットをアクティブにするには、クライアントスレッドの数が
              3 つ以上でなければならない。
            
              innodb_flush_log_at_trx_commit
              のデフォルト値が 0 から 1
              に変更された。この新しいリリースでは、my.cnf
              でこの値を明示的に指定しないと値 1
              が設定されるため、トランザクションコミットのたびにディスクへのログのフラッシュが発生してアプリケーションの実行速度が大幅に低下する。
            
              設定可能な MySQL グローバルシステム変数
              innodb_max_dirty_pages_pct
              が追加された。この変数は 0 〜 100
              の整数である。 デフォルト値は
              90。InnoDB
              のメインスレッドは、多くてもこのパーセンテージが常にフラッシュされずに残るように、バッファプールからページをフラッシュしようとする。
            
              innodb_force_recovery=6
              の場合に、InnoDB
              が破損ページを二重書き込みバッファに基づいて修復しないようになった。
            
              バッファプール内のメモリをゼロに設定しないようになったため、InnoDB
              の起動が速くなった。
            
              バグ修正: MySQL のコメント内に 'foreign key'
              というキーワードがあると、FOREIGN
              KEY 定義用の InnoDB
              パーサで混乱が生じていた。
            
              バグ修正: FOREIGN KEY
              で参照されていたテーブルを破棄し、その後に一致しないカラム型で同じテーブルを作成すると、InnoDB
              が dict0load.c の
              dict_load_table()
              関数でアサートする可能性があった。
            
              バグ修正: GROUP BY および
              DISTINCT が NULL
              値を不等として扱うことがあった。
              また、インデックスの範囲が空である場合に、MySQL
              がネクストキーロックを実行できなかった。
            
              バグ修正: MyISAM
              テーブルが更新されたときに現在のトランザクションはコミットされない。このため、バイナリロギングが有効であっても、CREATE
              TABLE では InnoDB
              トランザクションがコミットされない。
            
              バグ修正: 削除が行われたテーブルは
              ON DELETE SET NULL
              で変更できなかったが、これを可能にして、カスケードされた操作で無限ループが生じないようにした。
            
              バグ修正:
              主キーでの一意の検索でカーソルを位置付けた後でも
              HANDLER PREV および
              NEXT
              を使用できるようになった。
            
              バグ修正: MIN() または
              MAX()
              によってデッドロックまたはロック待ちのタイムアウトが発生した場合に、MySQL
              がエラーを返さずに、関数の値として
              NULL を返していた。
            
              バグ修正:
              テーブルが破棄される際に、InnoDB
              が pthread_mutex_destroy()
              を呼び出していなかった。そのために、FreeBSD
              およびその他の Linux 以外の Unix
              システムでメモリリークが発生する可能性があった。
            
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.

