ホームページ >バックエンド開発 >PHPチュートリアル >mongdb の使用を検討する必要があるアプリケーション シナリオは何ですか?
MySQL と redis は非常に使いやすくなりましたが、どのような状況でこれらのツールを放棄し、データを保存するために mongo の使用を検討すべきでしょうか?
さらに:
現在、記事コンテンツのスタイルを、検索ツールによるコンテンツの検索能力を損なうことなく保存できるようにするための適切なソリューションを検討しています。データベースの特徴や比較については必ず事前に確認しますので、実際の質問は実戦や経験に偏ったものになる可能性があります。
MySQL と Redis を使用して、毎日数百万の注文を処理する APP バックエンドを作成しました。MySQL と Redis は、現時点で Mongo の柔軟なデータ型ストレージを使用することを強制する、または推奨する理由やシナリオはありますか? , ログ保存にはmongoを使った方が良いとしか思いません。私は記事タイプのウェブサイト開発の初心者なので、ある程度の経験と指導が必要です。よろしくお願いします。
返信内容:さらに:
現在、記事コンテンツのスタイルを、検索ツールによるコンテンツの検索能力を損なうことなく保存できるようにするための適切なソリューションを検討しています。データベースの特徴や比較については必ず事前に確認しますので、実際の質問は実戦や経験に偏ったものになる可能性があります。
適切な使い方を一つ一つ挙げるのはとても大変です…
逆に考えてみましょう。mangodb の使用に適さないシナリオは何ですか?
ユーザーは多くの友達を持つことができ、友達はたくさんのメッセージを持つことができ、メッセージにはたくさんの返信を持つことができ、メッセージにはたくさんのいいねを付けることができます私たちにはユーザーパーソナルセンターがあります:
mongodb を使用してモデル化します。これは大きな JSON であり、その中にユーザーがあり、そのユーザーには友達の配列、メッセージの配列、返信の配列、および同様のユーザーの配列が含まれます。これらの配列には完全なものが格納されます。一度にクエリできる情報をすべて取得するだけです。
しかし、それは問題を引き起こします
friends配列内の友達情報は実際にはユーザー情報であるため、完全な情報を格納するとデータの冗長性が生じます。この問題は簡単に解決できます。つまり、idを配列に格納してから対応させます。 ID に基づいてデータ ソース内のデータを確認します。ただし、mongodb には結合操作がないため、コード層で関連付け作業を手動で行う必要がありますが、これは非常に面倒です...
mongodbは関係性、関係性、関係性のあるデータを保存するのには適していないようです。
MongoDB を決して使用してはいけない理由