私たちは PHP で書かれたシステムを持っていますが、これは何年にもわたってかなり大きくなっています。データベースは MySQL (InnoDB テーブル) で、現在 12GB を超えるデータがあり、何百ものテーブルがあり、その多くには 1200 万を超えるレコードがあります!
問題は、多くのテーブル/列 (すべてではない) が latin1 にあり、(明らかに) 外国語の文字を保存する際に問題が発生していることです。
可能な限り短いダウンタイムで、すべてのテーブル/テキスト列を UTF8 に変換する最善の方法は何ですか?
このシステムは何百人もの人々が 24 時間年中無休で使用しているため、長時間のダウンタイムは許されません。
大量のダウンタイムなしでこれを成功させる方法はありますか?また、注意が必要な明らかな点はありますか?
アプリケーションで utf-8 を使用するには、次の設定が必要になることはわかっています。
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
ini_set('default_charset', 'utf-8');
SET NAMES utf8
- ファイルをアップロードする前に、IDE で UTF8 にエンコードされたファイル
私は他のさまざまな投稿を読みましたが、誰もがさまざまな方法を提案しているようで、完全なデータベースのダンプ/復元が必要だと言う人もいます...これは、何時間ものダウンタイムを意味します.
では、これを行う最善の方法は何ですか?