SQLと各種NoSQLデータベースの使用シナリオの説明

SQLと各種NoSQLデータベースの使用シナリオの説明

SQL はメイントランクです。なぜ私はこのように理解するのでしょうか。

技術的な観点から

  • リレーショナルグリッドはビジネスの現実を完全に反映している
  • トランザクション、監査、フラッシュ メモリなどのデータが重視されるため、特に重要なデータは SQL に配置する必要があります。少なくともユーザー情報はシステム内の重要なデータです。
  • だからSQLは必要であり、データストレージのバックボーンである

NoSQLを導入するタイミング

まず、sql -> sql + nosql のプロセスを見てみましょう。

https://www.jb51.net/article/79236.htm NoSQL を使用する理由

これらはNoSQLですか?

Java言語の場合:

  • redis: キャッシュ用 - 非常に高速な読み取り速度 (メモリ内)
  • mongoDb - 読み取りと書き込みのトランザクションがバランスされます。json は node.js によって開発されました
  • Neo4j - .java は SQL に似ていますが、クエリは高速です。ただし、高度な機能は有料です... - ソーシャル (画像データベース)
  • Cassandra - 読み取りよりも高速にデータを書き込みます。 - ログの保存に使用されます。
  • HBase オフライン分析

私のアイデア:

Java言語に関しては:

  • - Redisはキャッシュ(値はJavaBeansに保存されます)と保存する必要のないホットデータに使用されます
  • - mongoDb は、重要度は低いが必要なストレージに使用されます。
  • - ログ管理には Cassandra を強くお勧めします (ログをデータベースに保存します)。
  • - HBASEオフライン分析、ビッグデータ
  • - Solr、ES - サイト内検索、SQL置換など
  • - または、SQL データベースの代わりに neo4j を使用します。トランザクション要件がある場合は、優先度 2 で別のスレッドを開始し、SQL に保存します。

NoSQL時代

MongoDB、Redis、Riak、HBase、Cassandra など、NoSQL データベースはすでに数多く存在します。それぞれに以下の特徴があります。

  • SQLはもう使用されていません。たとえば、MongoDBとCassandraには独自のクエリ言語があります。
  • 通常はオープンソースプロジェクト
  • クラスター運用のために生まれた
  • 弱い構造 - データ構造の種類を厳密に制限しない

適用可能なシナリオ

セッション、プロファイル、パラメーター、ショッピング カートなどのユーザー情報を保存します。この情報は通常、ID (キー) に関連付けられており、このシナリオではキー値データベースが適切な選択となります。

該当しないシナリオ

1) キーでクエリを実行する代わりに、値でクエリを実行します。 Key-Value データベースでは値によるクエリを実行する方法はありません。

2) データ間の関係性を保存する必要があります。キー値データベースでは、データを 2 つ以上のキーで関連付けることはできません。

3) トランザクションサポート。 Key-Value データベースで障害が発生した場合、ロールバックは実行できません。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • データベース言語分類DDL、DCL、DMLの詳しい説明
  • MySQL: MySQL 関数
  • MySQL データベースの型変換のための CAST 関数と CONVERT 関数の説明
  • MySQL 8.0.15 インストール グラフィック チュートリアルとデータベースの基礎
  • SQL SERVER データベースのバックアップ コードの例
  • PostgreSQL データベースのウィンドウ関数の構文と使用法
  • データベースの冗長フィールドを合理的に使用する方法
  • MySQL マスター/スレーブ データベース同期構成と一般的なエラー
  • PHP シングルトン モード データベース接続クラスとページ静的実装メソッド
  • 数千万のデータベースクエリでクエリ効率を向上させるにはどうすればよいでしょうか?

<<:  Vue.jsは画像切り替え機能を実装する

>>:  Linux サーバーに Python3 をインストールする 2 つの方法

推薦する

JavaScriptエンジンV8の実行プロセスの詳細な説明

目次1. V8ソース2. V8サービスターゲット3. V8の初期アーキテクチャIV. V8の初期アー...

nginx のスムーズな再起動を実装する方法

1. 背景サーバーの開発プロセスでは、新しいコードや構成をロードするためにサービスを再起動することが...

MySQL 8.0.20 インストール チュートリアル (画像とテキスト付き) (Windows 64 ビット)

1: mysql公式サイトからダウンロードhttps://dev.mysql.com/downlo...

フロントエンドのパフォーマンス最適化 - フロントエンドエンジニアが話し合うべき問題点

はじめに<br />前回の記事「私の CSS アーキテクチャ コンセプト」では、公園で友...

React Contextの理解と応用についてお話ししましょう

目次序文React Context の初見コンテキストの使い方コンテキストを直接取得できるいくつかの...

MySQLでデータを削除してもディスク領域が解放されないのはなぜですか

目次問題の説明解決問題分析問題の説明MySQL で delete ステートメントを使用してデータを削...

CSS でよく発生する問題の整理 (ロゴのハッキング/コンテナの固定/画像の垂直方向の中央揃え)

1. IEブラウザモードハックロゴ1. CSSハックロゴコードをコピーコードは次のとおりです。 ie...

Dockerで作成したコンテナを削除する方法

Dockerで作成したコンテナを削除する方法1. まず、docker -s -aコマンドを使用してす...

aタグ内のテキストを非表示にして画像を表示するには?360モードレンダリングに対応

多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...

Vue の大容量ファイルアップロードとブレークポイント再開アップロードの実装

目次ファイルアップロードのための2つのソリューションファイルストリーム(フォームデータ)に基づくクラ...

単一/複数行テキストを含む div を垂直方向に中央揃えする N 通りの方法 (高さ不明/高さ固定)

この問題について話すとき、垂直方向の中央揃えを設定するための vertical-align 属性が ...

MySQL 5.7.18 でパスワードを変更する方法

MySQL 5.7.18 でパスワードを変更する方法: 1. まずMySQLサーバーをシャットダウン...

有名なウェブサイトのロゴに使われている25種類のフォントのコレクション

この記事では、25 の有名な Web サイト (Google、Yahoo、Twitter、Digg ...

VUE ユニアプリコア知識の簡単な紹介

目次仕様a. ページファイルはVueの単一ファイルコンポーネント仕様に準拠しています。 b. コンポ...

MySQL でデータの重複挿入を回避する 4 つの方法

最も一般的な方法は、フィールドに主キーまたは一意のインデックスを設定することです。重複データを挿入す...