自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)庫的七種武器,快來看看!

數(shù)據(jù)庫
數(shù)據(jù)庫的七種武器,是我在工作維護(hù)和接觸到的七種常用數(shù)據(jù)庫,包括4種常用的關(guān)系型數(shù)據(jù)庫,3種常用nosql數(shù)據(jù)庫。本文按照順序依次對(duì)這“七種武器”,進(jìn)行介紹和總結(jié),希望能夠幫助大家理清每種“武器”的特點(diǎn)和用法,在合適的場(chǎng)景,使用合適的武器,構(gòu)建好自己的數(shù)據(jù)存儲(chǔ)體系。

數(shù)據(jù)庫的七種武器,是我在工作維護(hù)和接觸到的七種常用數(shù)據(jù)庫,包括4種常用的關(guān)系型數(shù)據(jù)庫,3種常用nosql數(shù)據(jù)庫。

這些數(shù)據(jù)庫作為業(yè)務(wù)底層的存儲(chǔ)選型,每種數(shù)據(jù)庫都有各自的定位和特點(diǎn),結(jié)合業(yè)務(wù),有各自的適用場(chǎng)景,在具體使用和運(yùn)維時(shí),也有一些特別的注意點(diǎn)。

本文按照順序依次對(duì)這“七種武器”,進(jìn)行介紹和總結(jié),希望能夠幫助大家理清每種“武器”的特點(diǎn)和用法,在合適的場(chǎng)景,使用合適的武器,構(gòu)建好自己的數(shù)據(jù)存儲(chǔ)體系。  

 

 

***種武器:MySQL數(shù)據(jù)庫 

 

1、定位:開源、多平臺(tái)、關(guān)系型數(shù)據(jù)庫

目前使用最廣泛、流行度***的的開源數(shù)據(jù)庫。

2、特點(diǎn):

功能:支持事務(wù),符合關(guān)系型數(shù)據(jù)庫原理,符合ACID,支持多數(shù)SQL規(guī)范,以二維表方式組織數(shù)據(jù),有插件式存儲(chǔ)引擎,支持多種存儲(chǔ)引擎格式

部署:用編譯安裝的方式,或者二進(jìn)制包的方式,按照“安裝軟件-創(chuàng)建實(shí)例-庫表用戶初始化”,可以很快完成數(shù)據(jù)庫部署

使用:使用標(biāo)準(zhǔn)的SQL語句進(jìn)行數(shù)據(jù)庫管理,簡單SQL語句的并發(fā)和性能較好,對(duì)視圖、存儲(chǔ)過程、函數(shù)、觸發(fā)器等支持的不是太好

監(jiān)控:在命令行界面有一些常用的命令顯示狀態(tài)和性能,在圖形界面方面,有比較多的開源監(jiān)控工具來監(jiān)控和記錄數(shù)據(jù)庫的狀態(tài),比如zabbix,nagios,cacti,lepus等

備份:邏輯備份 mysqldump/mysqldumper ,物理備份 用xtrabackup等工具進(jìn)行備份;

高可用:MySQL高可用有多種方案,官方有基礎(chǔ)的master-slave主從復(fù)制,新版本的innodb cluster,第三方的有MHA等高可用方案;

擴(kuò)展:MySQL水平拆分,可以通過水平拆分proxy中間進(jìn)行邏輯映射和拆分,擴(kuò)大MySQL數(shù)據(jù)庫的并發(fā)能力和吞吐量。

3、適用場(chǎng)景:

默認(rèn)的innodb存儲(chǔ)引擎,支持高并發(fā),簡單的絕大部分OLTP場(chǎng)景;

Tokudb存儲(chǔ)引擎,使用高并發(fā)insert的場(chǎng)景;

Inforbright存儲(chǔ)引擎,可以進(jìn)行列壓縮和OLAP統(tǒng)計(jì)查詢場(chǎng)景;

4、選擇注意:

使用MySQL進(jìn)行OLTP業(yè)務(wù)時(shí),需要注意數(shù)據(jù)量級(jí),如果數(shù)據(jù)量級(jí)過大,需要進(jìn)行水平拆分;

如果有OLAP需求,可以結(jié)合其他架構(gòu)綜合考慮。  

 

 

第二種武器:SQL Server數(shù)據(jù)庫

 

 

 

1、定位:商業(yè)、Windows平臺(tái)、關(guān)系型數(shù)據(jù)庫

最早接觸、與微軟體系結(jié)合緊密的的商業(yè)數(shù)據(jù)庫,屬于“微軟技術(shù)體系” 

2、特點(diǎn):

功能:支持事務(wù),符合關(guān)系型數(shù)據(jù)庫原理,符合ACID,支持多數(shù)SQL規(guī)范,以二維表方式組織數(shù)據(jù)

部署:在Windows平臺(tái),用圖形界面進(jìn)行軟件安裝;

使用:在Windows平臺(tái),使用SQL Server Mangement Studio圖形界面進(jìn)行安裝;

監(jiān)控:一般通過Windows資源管理和SQL server圖形工具進(jìn)行系統(tǒng)和數(shù)據(jù)庫性能顯示;

備份:通常用第三方備份恢復(fù)軟件進(jìn)行備份恢復(fù);

高可用:通過共享存儲(chǔ)和雙機(jī)熱備的方式,可以實(shí)現(xiàn)SQL Server數(shù)據(jù)庫的高可用;

擴(kuò)展: SQL Server數(shù)據(jù)庫集群采用共存存儲(chǔ)的方式,通過硬件垂直升級(jí)來對(duì)數(shù)據(jù)庫集群進(jìn)行擴(kuò)展; 

3、適用場(chǎng)景:大多數(shù)OLTP場(chǎng)景(與微軟體系配合)

4、選擇注意:

SQL Server與微軟技術(shù)體系結(jié)合比較緊密,絕大多數(shù)工作,都是通過圖形界面完成,對(duì)于習(xí)慣使用命令行的DBA可能會(huì)有不習(xí)慣;

SQL server對(duì)雙引號(hào),大小寫,元信息的管理和處理方式,與其他數(shù)據(jù)庫很不相同,需要注意;

使用SQL Server滿足OLTP業(yè)務(wù),會(huì)有比較好的效果,但對(duì)于大數(shù)據(jù)量的OLAP業(yè)務(wù),***還是選用專門的OLAP架構(gòu),不要在同一個(gè)SQL Server實(shí)例上混用OLTP和OLAP業(yè)務(wù);

SQL server屬于商業(yè)軟件,需要注意版權(quán)和licence授權(quán)費(fèi)用;  

 

 

第三種武器:Oracle數(shù)據(jù)庫

 

 

 

1、定位:

商業(yè)、多平臺(tái)、關(guān)系型數(shù)據(jù)庫

功能***大、最復(fù)雜、市場(chǎng)占比***的商業(yè)數(shù)據(jù)庫

2、特點(diǎn):

功能:支持事務(wù),符合關(guān)系型數(shù)據(jù)庫原理,符合ACID,支持多數(shù)SQL規(guī)范,以二維表方式組織數(shù)據(jù)

部署:Oracle單實(shí)例數(shù)據(jù)庫部署相對(duì)容易,但Oracle RAC集群環(huán)境,部署的步驟和依賴條件都比較多;

使用:通常使用命令行工具,進(jìn)行各種數(shù)據(jù)庫的管理,通常也可以用shell腳本和python腳本提高Oracle數(shù)據(jù)庫管理效率;各種管理功能,都比較強(qiáng)大;

監(jiān)控:Oracle官方有比較全面的監(jiān)控工具,常用的第三方監(jiān)控平臺(tái),如zabbix,cacti,lepus等都有對(duì)Oracle數(shù)據(jù)庫的各項(xiàng)指標(biāo)的完善監(jiān)控;

備份:支持冷備份和熱備份,可以用 exp/imp , expdp/impdp等進(jìn)行邏輯備份和恢復(fù),可以使用強(qiáng)大的RMAN工具進(jìn)行專業(yè)的物理熱備份和恢復(fù);

高可用:Oracle數(shù)據(jù)庫的高可用架構(gòu),可以用第三方雙機(jī)熱備軟件,結(jié)合Oracle單實(shí)例實(shí)現(xiàn);可以使用Oracle Dataguard,實(shí)現(xiàn)master和standby的備份;可以使用 Oracle RAC集群實(shí)現(xiàn)實(shí)例級(jí)別的高可用和負(fù)載均衡,使用ASM實(shí)現(xiàn)存儲(chǔ)級(jí)別的高可用;

擴(kuò)展:由于Oracle集群采用共享存儲(chǔ)的方式,一般只能通過垂直硬件升級(jí)進(jìn)行升級(jí);

3、適用場(chǎng)景絕大多數(shù)OLTP場(chǎng)景,部分OLAP

4、選擇注意:Oracle從架構(gòu)到運(yùn)維,可以說是最難的數(shù)據(jù)庫,學(xué)習(xí)和使用難度較高。   

 

 

第四種武器:Postgresql數(shù)據(jù)庫 

 

1、定位:開源、多平臺(tái)、關(guān)系型數(shù)據(jù)庫,功能***大的開源數(shù)據(jù)庫。

2、特點(diǎn):

功能:支持事務(wù),符合關(guān)系型數(shù)據(jù)庫原理,符合ACID,支持多數(shù)SQL規(guī)范,以二維表方式組織數(shù)據(jù);

部署: postgresql需要先準(zhǔn)備好Python等環(huán)境,然后編譯安裝軟件,初始化數(shù)據(jù)庫,啟動(dòng)實(shí)例,整個(gè)部署過程相對(duì)比較清晰;

使用: postgresql數(shù)據(jù)庫可以使用命令行方式進(jìn)行管理,也可以通過pgadmin圖形工具進(jìn)行管理;各種管理功能,都比較強(qiáng)大;

監(jiān)控: 可以再命令行中查看各種性能視圖和狀態(tài)視圖;相對(duì)其他其他數(shù)據(jù)庫,并沒有太好的圖形監(jiān)控工具和平臺(tái);

備份:支持冷備份和熱備份,可以用 COPY命令進(jìn)行邏輯導(dǎo)出和導(dǎo)入;用pgdump和pgrestore進(jìn)行物理備份和恢復(fù);

高可用:postgresql 官方支持 master-standby復(fù)制;也可以用Slony-I第三方組件進(jìn)行數(shù)據(jù)庫同步;

擴(kuò)展:postgresql可以通過修改源碼實(shí)現(xiàn)的postgres-XC實(shí)現(xiàn)水平擴(kuò)展;

3、適用場(chǎng)景:

絕大多數(shù)OLTP場(chǎng)景,部分OLAP

適合目前互聯(lián)網(wǎng)需要的一些信息,比如地理位置信息處理;

以postgresql作為底層數(shù)據(jù)庫的greenplum數(shù)據(jù)倉庫,是主流的MPP數(shù)據(jù)倉庫;

基于postgresql的TimeScaleDB,是目前比較火的時(shí)序數(shù)據(jù)庫之一;

4、選擇注意:

Postgresql的架構(gòu)、使用難度、功能性介于Oracle數(shù)據(jù)庫和MySQL數(shù)據(jù)庫之間,但因其開源的推動(dòng),各方面也有不錯(cuò)的發(fā)展;

Postgresql目前還沒有比較主流和好用的監(jiān)控平臺(tái),這是postgresql數(shù)據(jù)庫目前存在的一個(gè)不足。 

 

 

 

第五種武器:Mongodb數(shù)據(jù)庫

 

 

 

1、定位:開源、多平臺(tái)、文檔型nosql數(shù)據(jù)庫

非常主流的文檔型nosql數(shù)據(jù)庫,“最像關(guān)系型數(shù)據(jù)庫”,定位于“靈活”的nosql數(shù)據(jù)庫

2、特點(diǎn):

功能:數(shù)據(jù)文件存儲(chǔ)格式為BSON,模式自由,整體架構(gòu)與關(guān)系型數(shù)據(jù)庫有對(duì)應(yīng)關(guān)系,具有較好的高可用性和伸縮性,有插件式存儲(chǔ)引擎,新版本默認(rèn)是writedtiger存儲(chǔ)引擎;

部署:  部署比較簡答,下載軟件,設(shè)置好配置文件即可啟動(dòng)服務(wù);

使用:不支持SQL語句,使用與SQL對(duì)應(yīng)的json方式管理數(shù)據(jù)庫;

監(jiān)控:有比較豐富的監(jiān)控和性能命令,官方有比較完善的圖形監(jiān)控系統(tǒng),但需要購買;

備份:支持冷備份和熱備份,可以使用mongoexport/mongimport進(jìn)行邏輯備份,也可以使用基于oplog的mongodump/mongorestore物理熱備份;

高可用:MongoDB master-slave主從復(fù)制:在master節(jié)點(diǎn)上加 --master參數(shù),從數(shù)據(jù)庫加 -slave和-source參數(shù),就可以實(shí)現(xiàn)同步,這種目前不建議;

ReplicaSets復(fù)制集,在mongodb 1.6之后,開發(fā)了新的 replicaset,著呢家了故障自動(dòng)切換和自動(dòng)修復(fù)成員節(jié)點(diǎn),各個(gè)DB將數(shù)據(jù)一致,建議使用這種方式;可以測(cè)試讀寫分離和故障轉(zhuǎn)移;

擴(kuò)展:mongodb海量數(shù)據(jù)水平拆分,將數(shù)據(jù)分別存儲(chǔ)在sharding各個(gè)節(jié)點(diǎn)上,構(gòu)建出分布式集群。Sharding架構(gòu)由 底層多個(gè)mongodb Shared Server,config水平拆分配置庫config server,前端路由 route process,三部分構(gòu)成。Sharding集群底層可以是mongodb單實(shí)例,也可以高可用的replicaSet復(fù)制集。

 3、適用場(chǎng)景:

網(wǎng)站后臺(tái)數(shù)據(jù)庫:mongodb非常適合實(shí)話實(shí)說插入、更新與查詢,并可以實(shí)時(shí)復(fù)制和高伸縮性,適合更新迭代快、需求變更多、以對(duì)象為主的網(wǎng)站應(yīng)用;

小文件系統(tǒng):對(duì)于json文件,二進(jìn)制數(shù)據(jù),適合用mongodb進(jìn)行存儲(chǔ)和查詢

日志分析系統(tǒng):對(duì)于數(shù)據(jù)量大的日志文件,IM會(huì)話消息記錄,適合用mongodb來保存和查詢;

緩存系統(tǒng):mongodb數(shù)據(jù)庫也會(huì)使用大量的內(nèi)存,合理的設(shè)計(jì),也可以作為緩存系統(tǒng)使用;不過目前緩存系統(tǒng)使用更多的方案是 memcached和redis。

4、選擇注意:

Mongodb不適合的場(chǎng)景:

高度事務(wù)性的系統(tǒng):即傳統(tǒng)的OLTP業(yè)務(wù),mongodb,乃至其他nosql,對(duì)事務(wù)性支持都不太好;

傳統(tǒng)的統(tǒng)計(jì)分析應(yīng)用:即傳統(tǒng)的OLAP業(yè)務(wù),需要高度優(yōu)化的查詢方式,mongodb支持不好;

使用SQL語句比較方便的業(yè)務(wù):mongodb是json類型的查詢方式,雖然也靈活,但不如用SQL方便,如果業(yè)務(wù)和適合SQL,則就不太合適mongodb了。   

 

 

第六種武器:Redis數(shù)據(jù)庫 

 

 


1、定位:

開源、Linux平臺(tái)、key-value鍵值型Nosql數(shù)據(jù)庫

簡單穩(wěn)定,非常主流的、全數(shù)據(jù)in-momory、定位于“快”的鍵值型nosql數(shù)據(jù)庫

2、特點(diǎn):

功能: 命令執(zhí)行速度非常看,讀寫性能可達(dá)10萬/秒;數(shù)據(jù)結(jié)構(gòu)是key-value類似字典的功能,可以鍵過期-緩存,發(fā)布訂閱-消息系統(tǒng),簡單的事物功能;

部署: 用下載軟件介質(zhì),編譯安裝的方式,可以很快完成數(shù)據(jù)庫部署;服務(wù)啟動(dòng)redis-server,可以用默認(rèn)配置、運(yùn)行參數(shù)配置、配置文件啟動(dòng),三種方式;redis在Linux平臺(tái)支撐較好,官方?jīng)]有Windows版本,微軟維護(hù)了一個(gè)分支;

使用:用redis-cli客戶端連接,一般用簡單的 set ,get,del 進(jìn)行數(shù)據(jù)管理; 在單實(shí)例redis的基礎(chǔ)上,進(jìn)行可以數(shù)據(jù)持久化,主從復(fù)制,高可用和分布式等功能;

監(jiān)控:在命令行界面有一些常用的命令顯示狀態(tài)和性能,在圖形界面方面,有開源監(jiān)控工具來監(jiān)控和記錄數(shù)據(jù)庫的狀態(tài),比如cachecloud;

備份:直接備份成物理問價(jià)的RDB持久化,基于AOF日志的實(shí)時(shí)AOF持久化

高可用:官方的 redis sentinel哨兵高可用集群

擴(kuò)展:官方基于分配槽的 redis cluster分布式集群

3、適用場(chǎng)景:

緩存

基礎(chǔ)消息隊(duì)列系統(tǒng)

排行榜系統(tǒng)

計(jì)數(shù)器使用

社交網(wǎng)站的點(diǎn)贊、粉絲、下拉刷新等應(yīng)用;

4、選擇注意:

Redis的使用場(chǎng)景,是redis適合的解決的問題,也有不適合解決的問題。

從數(shù)據(jù)規(guī)模角度講,小數(shù)據(jù)規(guī)模使用redis比較合適,大數(shù)據(jù)規(guī)模使用redis不合適;(大數(shù)據(jù)規(guī)模,在一定程度上,可以用SSDB替代redis使用);

從數(shù)據(jù)冷熱角度看,熱數(shù)據(jù)適合放在redis中,冷數(shù)據(jù)不適合放在redis中。 

 

 

 

第七種武器:Hbase數(shù)據(jù)庫 

 

[[218848]]

1、定位:開源、Linux平臺(tái)、列存儲(chǔ)nosql數(shù)據(jù)庫

可用于海量數(shù)據(jù)存儲(chǔ)、與Hadoop生態(tài)圈結(jié)合、定位于“大”的列存儲(chǔ)nosql數(shù)據(jù)庫

2、特點(diǎn):

功能:命令執(zhí)行速度非???,讀寫性能可達(dá)10萬/秒;數(shù)據(jù)結(jié)構(gòu)是key-value類似字典的功能,可以鍵過期-緩存,發(fā)布訂閱-消息系統(tǒng),簡單的事物功能;

部署:相對(duì)其他數(shù)據(jù)庫,hbase的部署比較復(fù)雜,依賴Hadoop,zookeeper等組件,Hbase集群包括一個(gè)mater節(jié)點(diǎn),多個(gè)regionServer,zookeeper管理所有regionServer,需要依次部署Hadoop、zookeeper之后,再部署HBASE集群;

使用:用redis-cli客戶端連接,一般用簡單的 set ,get,del 進(jìn)行數(shù)據(jù)管理; 在單實(shí)例redis的基礎(chǔ)上,進(jìn)行可以數(shù)據(jù)持久化,主從復(fù)制,高可用和分布式等功能;

監(jiān)控:在命令行界面有一些常用的命令顯示狀態(tài)和性能,在圖形界面方面,有開源監(jiān)控工具來監(jiān)控和記錄數(shù)據(jù)庫的狀態(tài),比如cachecloud;

備份:Hbase一般用作海量數(shù)據(jù)的倉庫,本身通過多層副本來保證數(shù)據(jù)安全性,不用進(jìn)行專門的備份

高可用:HBASE集群基于Hadoop,需要依次部署Hadoop單機(jī)模式、集群模式、HA模式,通過Hadoop HA實(shí)現(xiàn)高可用;

擴(kuò)展:HBASE以集群形式,依次是單機(jī)模式,偽分布模式,完全分布模式,底層基于HDFS,zookeeper可以很好地進(jìn)行擴(kuò)展;

3、適用場(chǎng)景:

兩大用途:

用于簡單數(shù)據(jù)寫入和海量、結(jié)構(gòu)簡單數(shù)據(jù)查詢的業(yè)務(wù)場(chǎng)景;

用于成為其他數(shù)據(jù)庫備份和下沉的數(shù)據(jù)庫;

4、選擇注意:

Hbase不適合的場(chǎng)景:對(duì)數(shù)據(jù)分析需求高,需要能夠用sql或者簡單的MapReduce實(shí)現(xiàn)分析需求的業(yè)務(wù)場(chǎng)景,不適合用Hbase;

單表數(shù)據(jù)量,不超過千萬時(shí),使用Hbase,體現(xiàn)不出Hbase的優(yōu)勢(shì),而且會(huì)比較慢,不適合用Hbase。

通過對(duì)上面數(shù)據(jù)庫“七種”武器的描述,也可以看到目前常用數(shù)據(jù)庫的使用脈絡(luò)和選擇順序,對(duì)應(yīng)一個(gè)業(yè)務(wù),可以優(yōu)先選擇***的開源數(shù)據(jù)庫——MySQL;如果出于穩(wěn)定和商業(yè)版考慮,可以選擇Oracle數(shù)據(jù)庫,或者SQL Server數(shù)據(jù)庫(與Windows體系結(jié)合);如果想用開源,有想要有足夠的功能來應(yīng)對(duì)各種場(chǎng)景,可以使用 postgresql數(shù)據(jù)庫。這四種數(shù)據(jù)庫,都是關(guān)系型數(shù)據(jù)庫,可以很好地滿足大多數(shù)業(yè)務(wù)場(chǎng)景,解決通用性問題。

對(duì)于一些特殊性問題,尤其是想要在擴(kuò)展性方面有比較高的要求,可以考慮nosql數(shù)據(jù)庫。Mongodb數(shù)據(jù)庫,介于關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫之間,兼具兩者的特點(diǎn),是非常流行的文檔型nosql數(shù)據(jù)庫;redis定位于內(nèi)存型鍵值nosql數(shù)據(jù)庫;hbase是海量文件存儲(chǔ)的列式nosql數(shù)據(jù)庫。根據(jù)合適的業(yè)務(wù)場(chǎng)景,選擇適合的nosql數(shù)據(jù)庫,可以對(duì)某一類,或某幾類業(yè)務(wù)問題有很好的解決,可以作為關(guān)系型數(shù)據(jù)庫的一種補(bǔ)充。

換個(gè)角度,MySQL,Oracle,SQL Server,Postgresql,mongodb這五種數(shù)據(jù)庫,也是DB-Engines排行榜上***的排名前五的五種數(shù)據(jù)庫,從使用量和受歡迎程度,也可以看出這些數(shù)據(jù)庫使用的廣泛性。 

責(zé)任編輯:龐桂玉 來源: ITPUB
相關(guān)推薦

2018-03-06 09:54:48

數(shù)據(jù)庫備份恢復(fù)

2021-07-16 09:55:46

數(shù)據(jù)工具軟件

2009-12-23 17:10:26

2018-04-18 17:08:45

2019-10-29 06:30:31

告警疲勞網(wǎng)絡(luò)安全安全風(fēng)險(xiǎn)

2017-06-02 09:52:50

2017-12-15 09:05:16

Linux終端高手Bash shell

2018-09-30 10:00:23

Python編程語言代碼質(zhì)量

2023-09-13 10:48:40

2010-09-17 17:51:04

2020-02-17 11:21:01

黑客網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2011-02-28 09:25:49

移動(dòng)

2024-03-06 13:30:26

2017-11-24 08:00:55

前端JSCSS

2024-06-03 00:00:06

高性能數(shù)據(jù)傳輸應(yīng)用程序

2018-11-29 10:22:43

Java應(yīng)用服務(wù)器

2010-12-17 11:22:11

職場(chǎng)

2025-01-13 00:00:05

2010-08-31 10:57:36

2020-04-16 09:35:53

數(shù)據(jù)科學(xué)機(jī)器學(xué)習(xí)數(shù)據(jù)分析
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)