2017-05-06 5 views
0

単一ページアプリケーションまたはアプリケーションの速度を考慮すると、通常MEANに切り替わります。しかし、私の質問は、MongoDBのような文書データベースの代わりにデータベースとしてMySQLを使用すると、同じ速度とパフォーマンスを得ることができますか?MEAN構造化フレームワークでNode.jsとともにMondoDBの代わりにMySQLを使用

アプリケーションでバルク挿入操作または更新操作が不要であることを考慮してください。

答えて

1

Mysqlは強力なテーブルスキーマを持つRDMBSです。Mongodbは強いスキーマ(NoSQL)を持たないコレクションベースのデータベースです。

スキーマを見ずにmysqlがうまくいくか、mongodbが直接的に判断されるのは、スピードが賢明です。ただし、適切に索引付けされている場合は、そのいずれかのパフォーマンスを最適化できます。しかし、これらの2の間で選択する

、次のパラメータをチェックすることをお勧めします:

  • あなたのアプリケーションのスキーマが定義された(mysqlのが良い)、またはゆるく結合構造版のAとドキュメント(レコード)から変更することができますされている場合文書化する(モンゴブは良い)?
  • アプリケーションはマッピングテーブル、ピボットテーブルのような多くの主要な外部キーの関係を持つような異なるテーブルに分割されていますか?その後、Mongodbがあまりにも多くの結合でない場合、mysqls良い選択、良いです。 Mongodbを使って結合することはできますが、mysqlの単純な結合クエリはmongodb集合体内の長い入れ子になった$ lookup jsonクエリである可能性があります。
  • Mongodbのクエリ構文は、直感的で、javascriptのような構文に傾いています。したがって、開発が容易で、管理と再作業が容易です。
  • もしあなたがテキスト検索をしているなら、mongodbはトークン化とアナライザーを持つ$ textインデックスの良いセットを持っています。 mysqlで比較的難しいのは難しいです。
  • データのローカリティは、mongodb noreにmysqlよりも確実に存在します。
  • Mongodbは高可用性のためにマニュアルで述べたようにオートシャーディングを行います。これはmysqlで独自に設定する必要があります。
  • mongoを使用したいが、依然としてモデルヘルパー関数が照会するようにしたい場合、mongooseのようなノードパッケージはORMのようなモデルをmongodbに照会するでしょう。
+2

で情報を提供してくれてありがとう@Blastfreak。 MysqlとMongoDBは、関連するさまざまな要因や条件に関して明確に区別されています。 ルックアップとトークン化が大いに評価されました。 –

+0

MongoDBとその関連クエリのLookupについて簡単に説明できますか?大変感謝しています。 –

+1

$ lookupはmongodbの結合に過ぎません。ユーザー、ロール、ピボットテーブルuser_role、productsテーブルの4つのテーブルがあるとします。それは、ユーザーロールは多対多の関係を持っています。今すぐ売り手の役割を持つユーザーのすべての製品を取得したい場合、このmysqlを実行するのは簡単ですが、mongodbでこれを行うのはかなり複雑です。そこで、ピボットテーブルの代わりに配列を使用します。だからmongidbではなく、ピボットテーブルを持つ、私はすべてのユーザーの役割の配列を持っています。これにより検索が容易になります。したがって、どちらも、同じものを実装するために、ユースケースと構造が異なります。 –