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 つの方法

推薦する

MySQL共通インデックスとユニークインデックスの選択に関する詳細な分析

各人が固有の携帯電話番号で登録し、ビジネス コードによって重複する携帯電話番号が 2 つ書き込まれな...

HTML ハイパーリンク スタイル (4 つの異なる状態) の設定例

コードをコピーコードは次のとおりです。 <スタイル タイプ="text/css&qu...

Chrome プラグイン (拡張機能) 開発ガイド (完全デモ)

目次前面に書かれた序文ChromeプラグインとはChrome プラグイン開発を学ぶことの意義は何です...

MySQL サービスに iptables ファイアウォール ポリシーを追加するためのソリューション

MySQL データベースが Centos7 システムにインストールされており、オペレーティング シス...

DockerにElasticsearch7.6クラスタをインストールしてパスワードを設定する方法

目次基本的な設定バージョンとDockerイメージについて始めるelasticsearch.ymlにつ...

Dockerコンテナの状態変換の実装

Dockerコンテナの状態遷移図2度目の実戦 [root@localhost ~]# docker ...

WeChat ミニプログラム ユーザー認証のベストプラクティス ガイド

序文WeChat アプレットを開発する際には、ユーザーの権限が必要なページを使用する必要があることが...

MySQLデッドロックの原因と解決策

データベースは、オペレーティング システムと同様に、複数のユーザーが使用する共有リソースです。複数の...

Tinymce リッチテキストを使用して Vue のツールバーボタンをカスタマイズする実践

目次tinymce、tinymce ts、tinymce-vue 宣言ファイルをインストールするパッ...

HTML におけるブロックコメントの使用に関する詳細な紹介

HTML の一般的なコメント: <!--XXXXXXXX--> (XXXXXXXX はコ...

Linux で Apache を使用してファイル サーバーを構築する手順

1. ファイルサーバーについてプロジェクトでは、公開ソフトウェアやデータをプロジェクト チーム メン...

HTML テーブルタグチュートリアル (25): 垂直配置属性 VALIGN

垂直方向では、行の配置を上、中央、下に設定できます。基本的な構文<TR VALIGN=&quo...

MySQL ビュー管理ビューの例の詳細説明 [追加、削除、変更、クエリ操作]

この記事では、例を使用して MySQL ビューの管理ビュー操作について説明します。ご参考までに、詳細...

CentOS8 yum/dnfで国内ソースを設定する方法

CentOS 8 ではソフトウェア パッケージのインストール プログラムが変更され、yum 構成方法...

HTMLは実際にはいくつかの重要なタグを学ぶアプリケーションです

「これは革命になるだろう」という記事が出たあと。業界の皆様に認知され、もちろん内外からの評価もいただ...