質問: ORACLE社が発行している「MySQL5.7とMySQL5.6 設定パラメータ比較」に以下の記述があります。 > > 値 innodb は、すべての MySQL バージョンとの下位互換性があります。値 crc32 では、より高速に、変更されたすべてのブロックのチェックサムを計算し、ディスク読み取りごとにチェックサムをチェックするアルゴリズムが使用されます。テーブルスペース内のブロックが crc32 アルゴリズムを使用するように変更されたあとは、関連付けられたテーブルを以前のバージョンの MySQL で読み取ることはできません。 > > > パラメータinnodb_checksum_algorithmのデフォルト値 MySQL5.6:innodb MySQL5.7:crc32 MySQL5.6もMySQL5.7もパラメータinnodb_checksum_algorithmはデフォルト値のままとした場合、 MySQL5.6のデータをエキスポートし、MySQL5.7にインポートしたデータは、MySQL5.6で読み取ることができなくなるということでしょうか? つまり、パラメータinnodb_checksum_algorithmのデフォルト値をcrc32とすると、データに関しては下位互換にならないということでしょうか? ご存知の方がいましたら、教えてください。
回答: ちょっと質問の意図(なぜ、5.7から5.6にダウングレードしたいのか)が分からないので、 適切な回答ではないかもしれませんが、以下回答になります。 なお、回答の前提として、 MySQL5.6とMySQL5.7は別マシーン(もしくは、同一PC別ポート)で、 データ移行方法は、それぞれの環境でMySQLをインストールし、 データは物理ファイルのコピーではなく、クエリによる移行を想定しています。 回答としては、 MySQL5.6からMySQL5.7に移行した後に、 新テーブル等があり、MySQL5.7で追加されたjson型がテーブル等に含まれていなければ、 MySQL5.6に移行(ダウングレード)できますので、 MySQL5.7のデータをMySQL5.6にデータ移行しても読み取ることはできます。 innodb_checksum_algorithmは、 MySQLの設定情報であり、データをどういうアルゴリズムで扱うかという設定ですので、 データとの依存関係はほぼありません。(MySQL5.6でjson型は取り扱えません)