既存のMySQLデータベースの文字セットを統一する方法

既存のMySQLデータベースの文字セットを統一する方法

序文

データベースでは、一部のデータ テーブルとデータは latin1 であり、一部のデータ テーブルとデータは UTF8 であり、一部のテーブルは utf8 構造と latin1 データを持っています。

10年以上の仕事の中で、このような奇妙な状況に遭遇したのは初めてです。文字セットをutf8に統一する方法についてお話ししましょう

1. 空のデータベースを作成する

2. テーブル構造とデータをutf8形式でエクスポートし、新しいデータベースに直接インポートします。

3. データ テーブルとデータは両方とも latin1 です。まずテーブル構造とデータをエクスポートし、--default-character-set=latin1 を追加し、エクスポートしたファイルで latin1 を utf8 に変更してから、新しいデータベースにインポートします。

4. テーブル構造が utf8 で、テーブルデータが latin1 の場合、次の 2 つの方法があります。

4.1、まずテーブル構造をエクスポートし、新しいデータベースにインポートします。データをエクスポートするときは、テーブル構造が utf8 でテーブル データが latin1 であるため、データベースに保存すると文字化けしてしまうため、--default-character-set=utf8 を追加します。データを新しいライブラリにインポートします。このソリューションには欠点があります。--default-character-set=utf8 を使用すると、エクスポートされたデータが失われる可能性があり、エクスポートされたデータをインポートするとエラーが発生する可能性があります。

4.2では、転送にバイナリ文字セットを使用できます。この方法が推奨されます

ユーザーを更新します。SET user_name = CONVERT(CONVERT(CONVERT(user_name USING latin1) USING binary) USING UTF8);

この方法はエクスポートやインポートの手間が省け、比較的高速です。110,000件のレコードを完了するのに約5〜6秒かかります。

データベースの設計は非常に重要であり、データベースを設計する際には慎重に検討する必要があります。基礎がしっかりしていなければ、建物は遅かれ早かれ崩壊してしまいます。

以下もご興味があるかもしれません:
  • MySQL 文字セットの表示と変更のチュートリアル
  • MySQLの文字セットを変更する方法
  • MySQL データベースの文字化け問題の原因と解決策
  • MySQL の文字セット utf8 を utf8mb4 に変更する方法
  • MySQL 文字セットの文字化けとその解決方法
  • MySQL utf8mb4 文字セットの JDBC 処理の詳細な説明
  • フィールドの文字セットの違いによる MySQL のインデックス失敗の解決策
  • MAC で MySQL のデフォルトの文字セットを utf8 に変更する方法
  • Docker で MySQL の文字セットを設定する方法
  • MySQLクエリの文字セットの不一致の問題を解決する方法
  • MySQLの文字セットと検証ルールの詳細な説明

<<:  iOS WeChat H5ページのゴム反発効果の落とし穴記録

>>:  Nginx+Apache の動的および静的分離の導入の詳細な例

推薦する

Dockerを使用してphabricatorをインストールする方法

ここでは Ubuntu 16.04 システムを使用しています。 dockerを使用したインストールh...

JavaScript バブルソートの例

目次1. バブルソートとは何か2. 例を挙げるラウンド1:第2ラウンド:第3ラウンド:第4ラウンド:...

nginx は画像表示の遅さとダウンロードの不完全さの問題を解決します

前面に書かれた最近、ある読者から、ブラウザからサーバーにアクセスすると、画像の表示が遅く、ブラウザに...

MySQL 8.0 のユーザーとロールの管理原則と使用方法の詳細

この記事では、MySQL 8.0 のユーザーとロールの管理について例を挙げて説明します。ご参考までに...

JavaScript で同時実行制御を実装する方法

目次1. 同時実行制御の概要1.1 フェーズ1 1.2 フェーズ2 1.3 フェーズ3 2. 同時実...

Zabbix による VMware Exsi ホストの監視のグラフィカルな手順

1. 仮想化 vcenter に入り、ブラウザでログインし (クライアントは設定する場所を見つけませ...

JS を使用してクリップボード内の Excel コンテンツを解析する方法

目次序文1. イベントとクリップボードを貼り付ける2. クリップボード内のコンテンツ形式3. HTM...

数千万のデータを扱うMySQLのページングクエリのパフォーマンスを最適化する

MySQL のデータ量が多い場合、制限ページングが使用されます。ページ数が増えると、クエリの効率が低...

MySQL インデックスの使用方法 (単一列インデックスと複数列インデックス)

1. 単一列インデックスどの列にインデックスを作成するかを選択することは、パフォーマンス最適化プロ...

docker-maven-pluginプラグインは対応するjarパッケージを取得できません

docker-maven-plugin プラグインを使用する場合、Maven は対応する jar パ...

mysqldump を使用して MySQL データをバックアップする方法

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

CSS における要素の表示モード

CSS では、要素タグは、要素の表示モードの違いに応じて、インラインレベル要素とブロックレベル要素の...

MySQL でのトランザクションの使用方法

基礎トランザクションは、SQL ステートメントのグループに対するアトミック操作です。つまり、グループ...

MySQL ストアドプロシージャとストアドファンクションの詳細な説明

1 ストアドプロシージャ1.1 ストアドプロシージャとは何かストアド プロシージャは、特定の機能を実...

OpenLayersはポイントフィーチャーレイヤーの集約表示方法を実現します

目次1. はじめに2. ポイントフィーチャーレイヤーの集約3. 重合の特殊処理4. 重合の特殊処理 ...