生活随笔
收集整理的這篇文章主要介紹了
数据库架构设计——数据库选型
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
摘要
架構(gòu)師在工作中經(jīng)常會(huì)遇到數(shù)據(jù)庫存儲(chǔ)選型的問題,而市面上數(shù)據(jù)庫產(chǎn)品眾多,往往會(huì)無從下手,甚至有時(shí)候從業(yè)務(wù)開發(fā)到上線運(yùn)維過程中會(huì)多次更換底層數(shù)據(jù)庫,給整個(gè)研發(fā)中心帶來不必要的額外工作。結(jié)合業(yè)務(wù)場(chǎng)景做數(shù)據(jù)庫存儲(chǔ)選型的時(shí)候,可以綜合以下幾個(gè)維度去考慮:
一、技術(shù)選型維度
1.1 業(yè)務(wù)是否需要保證ACID事務(wù)?
事務(wù)具有4個(gè)特征,分別是原子性、一致性、隔離性和持久性
| 需要ACID | MySQL、pg(PostgreSQL)等 |
| 不需要ACID | MongoDB、hbase、cassandra等 |
1.2 要求低延遲
| ?對(duì)性能要求極致,不擔(dān)心數(shù)據(jù)丟失的選擇 | memcache |
| 數(shù)據(jù)生命周期短,數(shù)據(jù)量相對(duì)小,性能要求高,需要存儲(chǔ)靈活的數(shù)據(jù)結(jié)構(gòu): | Redis |
| 一般scylladb>canssdra>hbase | |
1.3 是否高并發(fā)寫入,隨機(jī)讀多于范圍讀?
| 需要支持高并發(fā)寫入,隨機(jī)讀多于范圍讀? | hbase、cassandra,hbase范圍讀更優(yōu)。 |
1.4 海量數(shù)據(jù)存儲(chǔ),支持水平擴(kuò)展,分布式容錯(cuò)?
| 需要支持海量數(shù)據(jù)存儲(chǔ),支持水平擴(kuò)展,分布式容錯(cuò) | NOSQL 如:resis、hbase、Cassandra、mongodb |
1.5 需要全文搜索?
| 支持全文搜索 | 海量數(shù)據(jù)用Elasticsearch |
| 支持全文搜索 | 數(shù)據(jù)量可控用pg GIST索引。 |
1.6 存儲(chǔ)復(fù)雜數(shù)據(jù)模型?
| 支持存儲(chǔ)復(fù)雜數(shù)據(jù)模型 | 文檔數(shù)據(jù)庫mongodb |
1.7 OLTP OR OLAP OR離線分析?
| ? OLTP(聯(lián)機(jī)事務(wù)處理) | 行存數(shù)據(jù)庫 mysql 、pg |
| ? OLAP(聯(lián)機(jī)分析處理) | 列存數(shù)據(jù)庫高壓縮 gp 、clickhouse |
| 離線分析 | :hbase |
1.8 金融級(jí)要求高可用、數(shù)據(jù)不丟
| 支持?jǐn)?shù)據(jù)不丟 | ?oceanbase、阿里云mysql金融版、mysql group replication |
1.9 需要事務(wù)而且海量數(shù)據(jù)存儲(chǔ)
| ? ?分庫分表 | drds、sharding-jdbc+關(guān)系型數(shù)據(jù)庫 |
| newsql | TiDB |
1.10 CAP權(quán)衡
CAP: 一致性(Consistency)、可用性(Availability)、分區(qū)容錯(cuò)性(Partition tolerance)。
| 保證CA | 關(guān)系型數(shù)據(jù)庫 |
| 保證CP | hbase、redis、mongodb |
| 保證AP | cassandra、riak 、couchdb |
1.11 特殊業(yè)務(wù)場(chǎng)景
| 地理信息系統(tǒng)GIS | PG>ES>Mongodb |
| ?時(shí)序 | TaosDB>influxdb>opentsdb |
1.12 開發(fā)角度,業(yè)務(wù)迭代快,需要schema free
對(duì)開發(fā)友好:關(guān)系型數(shù)據(jù)庫都行。另外就是MongoDB,不過也有兩面性,不如關(guān)系型數(shù)據(jù)庫有嚴(yán)格的約束,將任意類型的任意值插入任意集合,有時(shí)候會(huì)帶來負(fù)面作用。
1.13 運(yùn)維角度
?
總結(jié)
以上是生活随笔為你收集整理的数据库架构设计——数据库选型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。