【レポート】

MySQL 5.0.26 - 文字エンコーディング指定の新構文、致命的なバグ修正も

2 InnoDBデーブルの領域破壊に関するバグ

    松信嘉範  [2006/10/13]

    InnoDBテーブルが領域破壊される不具合の修正(Bug#21638)

    MySQL5.0系から、InnoDBの領域管理方法が効率化され、CHAR型などの固定長型について、無駄なスペースの消費をある程度防ぐことができるようになった(ROW_FORMAT=COMPACT)。

    一方で、MySQLでは古くから「部分索引」という機能を提供している。これは、列全体ではなく、列の先頭数バイトのみを索引にするという機能である。

    本不具合は、ROW_FORMAT=COMPACTと、固定長型に対する部分索引を組み合わせて利用した場合に、領域管理の処理内容に問題があり、Segmentation Faultによるmysqldの異常終了、もしくはInnoDBテーブルへの領域破壊という致命的な結果を生む危険がある、というものである。データの消失につながりかねない危険度の高いバグであり、発生条件に該当する場合は、部分索引ではなく通常索引への移行、旧領域管理方式のROW_FORMAT=REDUNDANTへの移行、バージョンアップなど、様々な対処案をよく検討してほしい。

    Connector/JとMySQL4.1以降の組み合わせで、mysqldが異常終了する場合がある不具合の修正(Bug#21913)

    Connector/Jなど、「SET CHARACTER_SET_RESULTS = NULL;」というSQL文を発行するタイプのアプリケーションでは、その後の処理内容によってはmysqldが異常終了することがある、という不具合があった。

    5.0.26では、このほかにも

    • ビュー、ストアドプロシージャ/ファンクション、トリガーに関するバグフィックス
    • サブクエリに関するバグフィックス
    • MySQL Cluster(NDB)のバグフィックス

    を中心に数多くの修正が行なわれている。特にストアドプロシージャについては、ストアドプロシージャ内でLAST_INSERT_ID()関数を実行した場合に、正しい結果が得られないという不具合の修正など、重要な修正が行なわれている。

    関連記事

    関連サイト

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン