内容:
- なぜ使用のNoSQL
- モンゴのご紹介
- シナリオ
- デモを取得
なぜ使用のNoSQL:
インターネットの発展に伴い、ユーザー数の急増は、訪問まで、伝統的なパフォーマンスのリレーショナルデータベースはまた、ボトルネック傾向にあります。
リレーショナルデータベース克服できない問題:
1、高同時読み取りと書き込み:なぜ、リレーショナル・データベースの高い同時読み取りをサポートし、それがディスクIO操作、およびNoSQLの一般的な直接操作メモリに基づいているため、それを書くのは難しいです。
図2に示すように、効率的な大容量データ記憶装置とアクセス
3、高い拡張性、高可用性
......
結合リレーショナルデータベース:
1は、トランザクションの一貫性を制約;サポート高い同時実行性は非常に困難であったが、また、データの一貫性を満たす必要がありました。
2、読み取りと書き込み、リアルタイムの要件
......
何のNoSQL、それが機能します:
NoSQLの(SQLだけではなく)、伝統的なSQLに反対しかし、いくつかの自然に従うことがバインドされていないとして、データストレージ技術です。
1、機能:
- 大容量データストレージのサポート
- パフォーマンスのボトルネックを破ります
- シンプルな操作
- オープンソースのサポート
- サーバーのパフォーマンスは低いが必要です
2.短所:
- これは、トランザクションをサポートしていません。
- (マルチテーブル会合に類似)を達成することは困難で複雑なSQL
- 等
モンゴのプロフィール:
モンゴの特徴:
図1に示すように、ストレージのための文書の収集:ストレージBSON形式(拡張JSON)データ
2、無料のストレージ・フォーマット:データ形式が固定されていない、サービスの動作に影響しないデータ構造を変更します
SQLに匹敵する3、強力なクエリ、
4、完全なインデックス、クエリプランのサポート
5、データレプリケーションとフェイルオーバーのサポート
6、バイナリラージオブジェクトデータと文書の効率的な記憶のためのサポート
7、システム性能を高めるために、スライスグループを使用して
図8に示すように、メモリ動作中にメモリマップされたストレージエンジン、ディスク入出力操作を使用して
......
MongoのコンセプトとRDMの比較:
ユーザーとメールボックスストレージのニーズとの間の関係が存在する場合:
1、SQLで一般に実装する2つのテーブルを必要とし、メールボックステーブル項目関連付けられたユーザを必要とするユーザ(ユーザテーブル)、メールに(メールボックステーブル、多くの)
2、しかし、あなたはそれだけでその場に設計配列型でモンゴを電子メールで送信する必要があります
{ _id: 0001 名: 'ZD' 電子メール:[ '[email protected]' 、 '[email protected]' ] }
シナリオ:
長いプロジェクトが二つ以上の機能が含まれているように、絶対に間違ったモンゴを選択してください!!!
デモをはじめ:
1、MongoDBのドライブ依存性増加
1 < 依存性> 2 < のgroupId > org.mongodb </ groupIdを> 3 < たartifactId > MongoDBのドライバ</ たartifactId > 4 < バージョン> 3.4.3 </ バージョン> 5 </ 依存>
図2に示すように、文書データを取得します
1 パブリック クラステスト{ 2 3 公共 静的 ボイドメイン(文字列[]引数){ 4 MongoClientクライアント= 新しい MongoClient( "192.168.233.128"、27017 )。 5 MongoDatabase DB = client.getDatabase( "ローカル" )。 6 はMongoCollection <文書>ユーザー= db.getCollection( "ユーザ" )。 7 ため(文献次:user.find()){ 8 オブジェクト名= next.get( "名" ); 9 オブジェクト年齢= next.get( "年齢" )。 10 System.out.println(MessageFormat.format( "名前= {0}、年齢= {1}" 、name.toString()、age.toString()))。 11 } 12 } 13 }