mysql から mongoDB に移行する予定です。移行計画の作成に役立つツールまたはその他のリソースがあるかどうかを知りたいです。たとえば (会社のテーブルが最初に移動し、次にユーザーの詳細など)、移行がスムーズになります。
2 に答える
MySQL スキーマを単に MongoDB (またはその他のドキュメント データベース ストア) に移行することはできません。データを保存する方法はまったく異なります。結合はなく、おそらくデータを非正規化し、特定のデータを他のドキュメントに埋め込む必要があることに注意してください。これは自動化できるものではありません。
データベースはここで根本的に異なります。アプリケーション側から、データの読み取りと書き込みの方法、結合を行っている場所、新しいスキーマをRDBM として悪用するのではなく、MongoDBと連携するための最適な設計方法を検討する必要があります。「MongoDB スキーマ設計」で検索して、考慮すべき事項の概要を確認してください。
まず、テーブルとクエリの関係を知る必要があります。
外部キー関係に従ってテーブルをグループ化します。テーブルが1つしかないグループもあるかもしれません。これらを最初に移行できます。それは簡単だからです。例: ログ、訪問者数。
次に、グループ内の2つのテーブル。
- リレーションが の場合、
1:1
それらを 1 つのテーブルにマージして移行できます。 - の場合
1:n
、n
側面を1
側面に埋め込むことができます。ただし、マージ(埋め込み)するかどうかは、クエリに従ってください。たとえば、リレーションを持つ 2 つのテーブルが1:1
一緒に読み込まれない場合は、マージせずに直接 MongoDB に移行できます。 - MongoDB
n:m
で実装できますが、大量の冗長データを管理するか、join
自分で処理する必要があります。でも、本当にやりたいことがあるなら、それでいいのです。しかし、パフォーマンスに問題がある可能性があります。
- リレーションが の場合、
グループ内のテーブル数が 3 以上の場合、ほとんどの場合、MySQL に保持する必要があると思います。しかし、まだいくつかの例外があります。
1:1
最近、関係を使用して 3 つのテーブルを処理し1:n
ましたが、それらをマージして 1 つのテーブルに埋め込んだだけです。これは簡単で、パフォーマンスが向上しています。