webdata
DX推進をサポートする技術者向け情報提供サイト

技術者向け技術情報

TOP >技術者向け技術情報 > DB移行時の照合順序は重要

【SQL】DB移行時の照合順序は重要

 2022-07-17 (更新日:2022-07-17)
 私自身PHPといえばLamppを利用してます。今まで物理的なサーバを交換したり、よくLampp自体を新しいバージョンに入れ替えたりしておりました。 DBのデータを移行後、検索やたら時間がかかる現象があり、原因は移行後と移行前のテーブルに設定されている照合順序が変わったためです。 新バージョンのインストールにてデフォルトで設定される照合順序が変わることがあることを知らなかったことによります。 状況として移行されたテーブルは問題なかったのですが、新たに作成したテーブルとリレーションを張ると照合順序が違うテーブル同士のためほぼ動かない状況になりました。
 どうってことのない話ですが、失敗の共有としてご紹介させて頂きました。

<対策>
 DB全体の照合順序をutf8mb4_general_ciに決めました。理由は英字の大文字小文字の区別はしないが全角半角までの区別必要ないと判断し テーブルの照合順位の統一を行いました。

 照合順序変更コマンド
 ・テーブル毎
  ALTER TABLE テーブル名 COLLATE utf8mb4_general_ci;
 ・変更の確認
  SHOW TABLE STATUS FROM DB名;