① vcenter6.0應該使用獨立資料庫還是內嵌資料庫好
初次接觸嵌入式資料庫(EmbeddedDatabase)可能對這個概念總不是很清楚,尺枝渣它究竟與資料庫伺服器(DatabaseServer)有什麼區別,它們又分別適用於那些應用場景呢,這是需要解決的問題。
在談區別之前,先來個感性認識。像Oracle、搭明Sybase、MySQL和SQLServer這些大家熟知的資料庫都屬於資料庫伺服器(當然不排除某些也提供嵌入式版本),而像SQLite、BerkeleyDB等屬於嵌入式資料庫。
嵌入式資料庫跟資料庫伺服器最大的區別在於它們運行的地址空間不同。通常,資料庫伺服器獨立地運行一個守護進程(daemon),而嵌入式資料庫與應用程序運行在同一個進程。
資料庫伺服器的架構如下:
圖中的資料庫客戶端通常通過資料庫驅動程序如JDBC、ODBC等訪問資料庫伺服器,資料庫伺服器再操作資料庫文件。
資料庫服務是一種客戶端伺服器模式,客戶端和伺服器是完全兩個獨立的進程。它們可以分別位於在不同的計算機甚至網路中。客戶端和伺服器通過TCP/IP進行通訊。這種模式將數據與應用程序分離,便於對數據訪問的控制和管理。
嵌入式資料庫架構如下:
嵌入式資料庫不需要資料庫驅動程序,直接將資料庫的庫文件鏈接到應用程序中。應用程序通過API訪問資料庫,而不是TCP/IP。因此,嵌入式資料庫的部署是與應用程序在一起的。比如常見的版本控制器SubVersion,它陵悄所用的嵌入式資料庫就是跟應用程序放在一起的。
資料庫伺服器和嵌入式對比如下:
(1)資料庫伺服器通常允許非開發人員(DBA,資料庫庫管理員)對資料庫進行操作,而在嵌入式數據中通常只允許應用程序對其進行訪問和控制。
(2)資料庫伺服器將數據與程序分離,便於對資料庫訪問的控制。而嵌入式資料庫則將數據的訪問控制完全交給應用程序,由應用程序來進行控制。
(3)資料庫伺服器需要獨立的安裝、部署和管理,而嵌入式數據通常和應用程序一起發布,不需要單獨地部署一個資料庫伺服器,具有程序攜帶性的特點。
從上面的對比可以看出,資料庫伺服器和嵌入式資料庫各自具有自己的特點,它們分別適用於不同的應用場景。
如果你要存儲的數據的訪問比較復雜,比如跨網路、復雜的訪問控制策略,又需要資料庫管理員經常進行管理和維護,那麼資料庫伺服器就非常適合你。
如果你要存儲的數據的訪問之需要應用程序控制即可,並且基本不需要人工干預,而且需要對數據的訪問簡單、快速有效,那麼嵌入式資料庫適合你。
另外,你是否有過這樣的情況:存儲的數據量不是很大,如果搞個一般的資料庫來感覺太浪費了,而且如果發布這個程序還非常麻煩,這時那些微小的嵌入式資料庫可能非常適合你(如某些電子郵件客戶端就採用的是嵌入式資料庫)。