国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

MongoDB指南---1、MongoDB簡介

guyan0319 / 2489人閱讀

摘要:不采用關系模型主要是為了獲得更好的擴展性。易于擴展應用程序數據集的大小正在以不可思議的速度增長。過去非常罕見的級別數據,現在已是司空見慣了。這種精簡方式的設計是能夠實現如此高性能的原因之一。下一篇文章指南基礎知識文檔集合數據庫客戶端

下一篇文章:MongoDB指南---2、MongoDB基礎知識-文檔、集合、數據庫、客戶端

MongoDB是一款強大、靈活,且易于擴展的通用型數據庫。它能擴展出非常多的功能,如二級索引(secondary index)、范圍查詢(range query)、排序、聚合(aggregation),以及地理空間索引(geospatial index)。本章涵蓋了MongoDB的主要設計特點。

1.1 易于使用

MongoDB是一個面向文檔(document-oriented)的數據庫,而不是關系型數據庫。不采用關系模型主要是為了獲得更好的擴展性。當然, 還有其他一些好處。
與關系型數據庫相比,面向文檔的數據庫不再有“行”(row)的概念,取而代之的是更為靈活的“文檔”(document)模型。通過在文檔中嵌入文檔和數組,面向文檔的方法能夠僅使用一條記錄來表現復雜的層次關系,這與使用現代面向對象語言的開發者對數據的看法一致。
另外,不再有預定義模式(predefined schema):文檔的鍵(key)和值(value)不再是固定的類型和大小。由于沒有固定的模式,根據需要添加或刪除字段變得更容易了。通常,由于開發者能夠進行快速迭代,所以開發進程得以加快。而且,實驗更容易進行。開發者能嘗試大量的數據模型,從中選擇一個最好的。

1.2 易于擴展

應用程序數據集的大小正在以不可思議的速度增長。隨著可用帶寬的增長和存儲器價格的下降,即使是一個小規模的應用程序,需要存儲的數據量也可能大得驚人,甚至超出了很多數據庫的處理能力。過去非常罕見的T級別數據,現在已是司空見慣了。
由于需要存儲的數據量不斷增長,開發者面臨一個困難:應該如何擴展數據庫?實質上,這是縱向擴展(scale up)和橫向擴展(scale out)之間的選擇。縱向擴展就是使用計算能力更強的機器,而橫向擴展就是通過分區將數據分散到更多機器上。通常,縱向擴展是最省力的做法,其缺點是大型機一般都非常昂貴。而且,當數據量達到機器的物理極限時,無論花多少錢也買不到更強的機器了。另一個選擇是橫向擴展:要增加存儲空間或提高性能,只需購買一臺普通的服務器并把它添加到集群中就可以了。橫向擴展既便宜又易于擴展;不過,管理1000臺機器比管理一臺機器顯然要困難得多。
MongoDB的設計采用橫向擴展。面向文檔的數據模型使它能很容易地在多臺服務器之間進行數據分割。MongoDB能自動處理跨集群的數據和負載,自動重新分配文檔,以及將用戶請求路由到正確的機器上。這樣,開發者能夠集中精力編寫應用程序,而不需要考慮如何擴展的問題。如果一個集群需要更大的容量,只需要向集群添加新服務器,MongoDB就會自動將現有數據向新服務器傳送。

1.3 豐富的功能

MongoDB作為一款通用型數據庫,除了能夠創建、讀取、更新和刪除數據之外,還提供一系列不斷擴展的獨特功能。

索引(indexing)

MongoDB支持通用二級索引,允許多種快速查詢,且提供唯一索引、復合索引、地理空間索引,以及全文索引。 ?

聚合(aggregation)

MongoDB支持“聚合管道”(aggregation pipeline)。用戶能通過簡單的片段創建復雜的聚合,并通過數據庫自動優化。

特殊的集合類型

MongoDB支持存在時間有限的集合,適用于那些將在某個時刻過期的數據,如會話(session)。類似地,MongoDB也支持固定大小的集合,用于保存近期數據,如日志。

文件存儲(file storage)

MongoDB支持一種非常易用的協議,用于存儲大文件和文件元數據。
MongoDB并不具備一些在關系型數據庫中很普遍的功能,如連接(join)和復雜的多行事務(multirow transaction)。省略這些功能是出于架構上的考慮(為了得到更好的擴展性),因為在分布式系統中這兩個功能難以高效地實現。

1.4 卓越的性能

MongoDB的一個主要目標是提供卓越的性能,這很大程度上決定了MongoDB的設計。MongoDB能對文檔進行動態填充(dynamic padding),也能預分配數據文件以利用額外的空間來換取穩定的性能。MongoDB把盡可能多的內存用作緩存(cache),試圖為每次查詢自動選擇正確的索引??傊琈ongoDB在各方面的設計都旨在保持它的高性能。
雖然,MongoDB非常強大并試圖保留關系型數據庫的很多特性,但它并不追求具備關系型數據庫的所有功能。只要有可能,數據庫服務器就會將處理和邏輯交給客戶端(通過驅動程序或用戶的應用程序代碼來實現)。這種精簡方式的設計是MongoDB能夠實現如此高性能的原因之一。

1.5 小結

本書將詳細說明MongoDB開發過程中的一些特定設計背后的原因和動機,借此分享MongoDB背后的哲學。當然,掌握MongoDB最好的方式是創建一個易擴展、靈活、快速的功能完備的數據存儲,這也是MongoDB的意義所在。

下一篇文章:MongoDB指南---2、MongoDB基礎知識-文檔、集合、數據庫、客戶端

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/19567.html

相關文章

  • MongoDB指南---1MongoDB簡介

    摘要:不采用關系模型主要是為了獲得更好的擴展性。易于擴展應用程序數據集的大小正在以不可思議的速度增長。過去非常罕見的級別數據,現在已是司空見慣了。這種精簡方式的設計是能夠實現如此高性能的原因之一。下一篇文章指南基礎知識文檔集合數據庫客戶端 下一篇文章:MongoDB指南---2、MongoDB基礎知識-文檔、集合、數據庫、客戶端 MongoDB是一款強大、靈活,且易于擴展的通用型數據庫。它...

    VPointer 評論0 收藏0
  • MongoDB指南---10、索引、復合索引 簡介

    摘要:可以通過來強制使用某個特定的索引,再次執行這個查詢,但是這次使用,作為索引。 上一篇文章:MongoDB指南---9、游標與數據庫命令下一篇文章:MongoDB指南---11、使用復合索引、$操作符如何使用索引、索引對象和數組、索引基數 本章介紹MongoDB的索引,索引可以用來優化查詢,而且在某些特定類型的查詢中,索引是必不可少的。 什么是索引?為什么要用索引? 如何選擇需要建立...

    enrecul101 評論0 收藏0
  • MongoDB指南---10、索引、復合索引 簡介

    摘要:可以通過來強制使用某個特定的索引,再次執行這個查詢,但是這次使用,作為索引。 上一篇文章:MongoDB指南---9、游標與數據庫命令下一篇文章:MongoDB指南---11、使用復合索引、$操作符如何使用索引、索引對象和數組、索引基數 本章介紹MongoDB的索引,索引可以用來優化查詢,而且在某些特定類型的查詢中,索引是必不可少的。 什么是索引?為什么要用索引? 如何選擇需要建立...

    leiyi 評論0 收藏0
  • MongoDB指南---7、find簡介與查詢條件

    摘要:上一篇文章指南更新文檔下一篇文章指南特定類型的查詢本章將詳細介紹查詢。查詢條件和就是全部的比較操作符,分別對應和。如果查詢優化器可以更高效地處理,那就選擇使用它。注意,查詢優化器不會對進行優化,這與其他操作符不同。 上一篇文章:MongoDB指南---6、更新文檔下一篇文章:MongoDB指南---8、特定類型的查詢 本章將詳細介紹查詢。主要會涵蓋以下幾個方面: 使用find或者f...

    denson 評論0 收藏0
  • MongoDB指南---7、find簡介與查詢條件

    摘要:上一篇文章指南更新文檔下一篇文章指南特定類型的查詢本章將詳細介紹查詢。查詢條件和就是全部的比較操作符,分別對應和。如果查詢優化器可以更高效地處理,那就選擇使用它。注意,查詢優化器不會對進行優化,這與其他操作符不同。 上一篇文章:MongoDB指南---6、更新文檔下一篇文章:MongoDB指南---8、特定類型的查詢 本章將詳細介紹查詢。主要會涵蓋以下幾個方面: 使用find或者f...

    tylin 評論0 收藏0

發表評論

0條評論

guyan0319

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<