sql >> データベース >  >> RDS >> Mysql

MySqlvsNoSql-ソーシャルネットワークのコメントと通知のデータ構造と実装

    質問は非常に幅広いですが、私はできる限り答えようとします。

    SOに来る前はほとんど調査をしていなかったように見えるので、私は一般的にこのような質問に答えるのは好きではありません。また、アプリケーションとデータベースの役割と混同しているようです。少なくともいくつかの資料/アイデアから始めて、自分で決めることができます。

    特にデータベースに関しては、バックエンド設計に「特効薬」はありません。 SQLデータベースは、一般的にほとんどのデータベース機能で非常に優れており、当然のことながらそうです。それは非常に成熟した技術であり、ある理由で時の試練に耐えてきました。ほとんどのNOSQLソリューションは、特定の目的に特化しています。たとえば、多くの情報をログに記録している場合は、Cassandraを確認することをお勧めします。大量のリレーショナルデータを処理している場合は、Neo4j(またはRMDBSの場合はPostgreSQL / MySQL)のようなものを使用することをお勧めします。大量のリアルタイムデータを処理している場合は、Redisを確認することをお勧めします。

    いくつかの理由から、NOSQLとSQLを比較するのは馬鹿げています:

    NOSQLは一般的に悪い用語です。そして、それは「SQLなし」を意味するものではありません。 「SQLだけではない」という意味です。残念ながら、この用語は、データベースの最も正反対のものでさえもカプセル化しています。

    アプリケーションの全機能を知っているのはあなただけです。あなたが達成したいことの基本を知っていたとしても、私はあなたに決定的な答えを与えることができませんでした。他の誰もできません。これは非常に主観的であり、繰り返しになりますが、アプリケーションが何をすべきかを正確に知っているのはあなただけです。

    最大の理由:2014年です。なぜ1つのデータベースなのですか? 10年前は、「DatabaseXとDatabaseY」は実際的な質問でした。これで、数分で複数のデータベースを確実に使用するように多くのアプリケーションフレームワークを構成できます。話の教訓:各データベースをその特殊な目的に使用します。ポリグロットの永続性の詳細こちら 。

    Facebookに関する限り、5分間のGoogle検索で、過去に使用したバックエンドテクノロジーが明らかになり、現在のバックエンドソリューションのいくつかを調査することはそれほど難しくありません。あなたはFacebookではありません。現在、10億人のユーザーに備える必要はありません。シンプルで実績のあるテクノロジーから始めましょう。これにより、アプリケーションを自然にスケーリングできます。これらのテクノロジーがボトルネックになり始めたら、スケーラビリティについて心配します。

    これがコーディングの旅を始めるのに役立つことを願っていますが、コードに問題がある場合は、最後の手段としてStackOverflowを使用してください。すぐに行くわけではありません。




    1. テーブルを再作成する必要がある変更を保存しないようにするマイナスの影響

    2. Oracleのプラス(+)表記とansi JOIN表記の違いは?

    3. SQL ServerのSYSDATETIME()とGETDATE():違いは何ですか?

    4. クラスター化されたインデックスとクラスター化されていないインデックスの違いは何ですか?