色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

關系型數據庫和非關系型數據庫有什么區別

老白2年前21瀏覽0評論
關系型數據庫和非關系型數據庫有什么區別?

先說說關系型數據庫和非關系型數據庫有什么區別

這里的關系型和非關系型,主要是數據存儲格式的區別,我們常見的關系型數據庫有Mysql、Oracle、DB2、SQL Server等,都是通過關系模型來組織數據,也就是二維表格模型。

而非關系型數據庫,就不是按照這個二維表格來存儲數據了,例如Redis是使用鍵值對(key-value)來組織數據,MongoDB是采用BSON的格式(可以想象成JSON);并且不局限于固定的結構。

關系型數據庫和非關系型數據庫之間的關系,也不是有你沒有,二者選其一,通常都是配合起來使用的。

各自的優缺點

關系型數據庫,容易理解,使用方便(通過SQL語言操作),易于維護;但是因為數據在磁盤上存儲,I/O會成為一個很大的瓶頸,如果在高并發的場景下,性能降低的很快;另外,對于關系型數據庫,當單表數據量增加到一定程度的時候,表的操作效率也會很低;表結構固定,當數據量比較大的時候,對表結構的擴展會是災難性的。

非慣性數據庫因為數據結構的“隨性”,用戶可以根據需要增加字段,關系型數據習慣設計成多張表,然后通過表關聯查詢,而非關系型數據庫(文檔性)會把所有字段放到一個集合中,避免多表的關聯。不過缺點也非常明顯,“隨性”也就意味著沒有標準,單集合有好處也有壞處,沒有完整性約束,對于復雜的業務場景支持比較差。

至于MongoDB和Redis怎么選擇,兩者差別還是很大的,適用場景也不同

Redis的數據存儲格式是key-value,支持持久化、 支持事務,經常用于緩存、高并發下的讀寫(計數器、最新列表、秒殺),因為單線程的機制也會用于分布式鎖。

MongoDB的數據存儲格式為BSON(類似于JSON),支持快速讀寫,特別是大吞吐量的寫操作;如果表結構不明確,未來可能會發生很大的變化,非常適合使用MongoDB。

架構中可以同時包含關系型數據庫、Redis和MongoDB,各司其職。

我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。