四虎国产精品永久地址998_chinesexxx少妇露脸_日本丁香久久综合国产精品_一区二区久久久久_四虎av影视_久久久久国产一区二区三区不卡

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 精選文章 > 如何選擇數(shù)據(jù)庫?這七種數(shù)據(jù)庫的好壞你了解多少?

如何選擇數(shù)據(jù)庫?這七種數(shù)據(jù)庫的好壞你了解多少?

2021-05-26 08:56:12 | 來源:中培企業(yè)IT培訓(xùn)網(wǎng)

如今,有數(shù)百個SQL和NoSQL數(shù)據(jù)庫。其中有些數(shù)據(jù)庫很受歡迎,有些數(shù)據(jù)庫則被忽略;有些是用戶比較喜歡使用的并且有據(jù)可查,有些則很難使用;有些數(shù)據(jù)庫是開源的,有些是專有的;最重要的是有些數(shù)據(jù)庫是可伸縮的,優(yōu)化的,高度可用的,而有些則很難擴展或維護。有一個自然的問題:如何選擇數(shù)據(jù)庫?為了回答這個問題,我們應(yīng)該決定要使用數(shù)據(jù)庫實現(xiàn)的目標(biāo)。要創(chuàng)建視圖,我們應(yīng)該回答以下問題:我們需要對數(shù)據(jù)庫的分析訪問嗎?我們需要實時書寫或閱讀嗎?我們要存儲多少張表/記錄?我們需要什么可用性?我們需要列嗎?我們將訪問按列過濾還是按行過濾的表?

做出決定后,我們需要牢記一個或另一個數(shù)據(jù)庫能夠提供的內(nèi)容。每個數(shù)據(jù)庫的特定功能可能會有所不同,但是通常,只有少數(shù)幾種類型的數(shù)據(jù)庫。在這些類型中,我們可以實現(xiàn)幾乎相同的目標(biāo)。讓我們仔細看看它們。

1. SQL關(guān)系數(shù)據(jù)庫

如果您曾經(jīng)使用過數(shù)據(jù)庫,則很可能已經(jīng)開始使用這種類型的數(shù)據(jù)庫。這種類型是最流行和廣泛使用的。這些數(shù)據(jù)庫允許將數(shù)據(jù)存儲在具有特定類型的已定義列的關(guān)系表中。關(guān)系表是良好的規(guī)范化和聯(lián)接。

好處

SQL支持

ACID事務(wù)(原子性,一致性,隔離性和持久性)

索引和分區(qū)支持

缺點

對非結(jié)構(gòu)化數(shù)據(jù)/復(fù)雜類型的支持不佳

錯誤的事件處理優(yōu)化

困難/昂貴的縮放

示例:Oracle DB,MySQL,PostgreSQL。

2.面向文檔的數(shù)據(jù)庫

如果我們不想連接多個表來檢索所需的數(shù)據(jù),我們可以看一下面向文檔的數(shù)據(jù)庫。這些數(shù)據(jù)庫允許以類似JSON的格式存儲記錄。使用這種格式,我們可以為任何鍵創(chuàng)建復(fù)雜的值,并將所有數(shù)據(jù)結(jié)構(gòu)一次包含在一條記錄中。

好處

無架構(gòu)

無需總是在每條記錄中寫入所有字段

良好的復(fù)雜類型支持

適合OLTP

缺點

交易支持不佳

不良的分析支持

困難/昂貴的縮放

示例:MongoDB

3.內(nèi)存數(shù)據(jù)庫

這種類型的數(shù)據(jù)庫可以提供實時響應(yīng),以選擇和插入特定記錄。它們中的大多數(shù)主要將數(shù)據(jù)存儲到RAM中,但在某些情況下還可以在HDD或SSD上提供持久性存儲。這些數(shù)據(jù)庫中的大多數(shù)都使用鍵/值記錄進行操作,因此值可以調(diào)用面向文檔的格式。但是某些數(shù)據(jù)庫還使用列進行操作,并允許在同一表中進行二級索引。使用RAM可以快速處理數(shù)據(jù),但使其更加不穩(wěn)定和昂貴。

好處

快速寫作

快速閱讀

缺點

可靠性差

昂貴的縮放

示例:Redis,Tarantool,Apache Ignite

4.寬列數(shù)據(jù)庫

這些數(shù)據(jù)庫將數(shù)據(jù)存儲為HDD或SSD上的鍵/值記錄。這些解決方案旨在充分擴展,以管理分布式系統(tǒng)中數(shù)千個商用服務(wù)器中的PB數(shù)據(jù)。它們代表SSTable體系結(jié)構(gòu)。該體系結(jié)構(gòu)設(shè)計用于兩個用例:按鍵快速訪問和快速,高可用性的編寫。

好處

逐行快速書寫

快速讀取按鍵

良好的可擴展性

高可用性

缺點

鍵/值格式

沒有分析支持

示例:Cassandra,HBase

5.柱狀數(shù)據(jù)庫

有時我們需要快速訪問數(shù)據(jù),而不是使用特定的鍵,而是使用特定的列。在這種情況下,我們最好避免逐行插入,而轉(zhuǎn)為批量寫入。批處理插入允許列式數(shù)據(jù)庫準(zhǔn)備數(shù)據(jù)以供列快速讀取。

好處

按列快速閱讀

良好的分析支持

良好的可擴展性

缺點

僅適用于批量插入

示例:Vertica,Clickhouse

6.搜索引擎

如果我們想通過任何值甚至是列中的任何單詞使用過濾器訪問數(shù)據(jù),我們都應(yīng)該記住搜索引擎。這些數(shù)據(jù)庫對列中的每個單詞進行索引,并允許全文搜索。它們非常適合存儲和分析日志或較大的文本值。

好處

一字快速訪問

良好的可擴展性

缺點

僅適用于批量插入

不良的分析支持

示例:ElasticSearch,Apache Solr

7.圖形數(shù)據(jù)庫

對于某些用例,存在圖數(shù)據(jù)結(jié)構(gòu)。我們可以在圖形數(shù)據(jù)庫中找到它們的實現(xiàn)。如果您的任務(wù)需要使用圖形,則可以使用專門設(shè)計的數(shù)據(jù)庫來滿足您的需求。

好處

圖形數(shù)據(jù)結(jié)構(gòu)

實體之間的可管理關(guān)系

靈活的結(jié)構(gòu)

缺點

特殊查詢語言

難以擴展

示例: Neo4j

關(guān)于如何選擇數(shù)據(jù)庫,上述推薦了7款使用比較廣泛的數(shù)據(jù)庫。至于到底如何選擇,其實所有類型的數(shù)據(jù)庫都可以完成所有任務(wù)。問題是它會多么昂貴和如何優(yōu)化。選擇您慣用的工具可以縮短產(chǎn)品上市時間,但同時也會花費大量金錢維護和擴展您的硬件,而這可能會導(dǎo)致效率低下。始終嘗試按照其使用方式使用數(shù)據(jù)庫。也許,就能找到適合所需求的解決方案。想了解更多數(shù)據(jù)庫的信息,請繼續(xù)關(guān)注中培偉業(yè)。

主站蜘蛛池模板: 周宁县| 惠水县| 襄垣县| 玉门市| 夏河县| 广灵县| 万州区| 南华县| 新兴县| 井陉县| 保亭| 新巴尔虎右旗| 淮安市| 尉氏县| 石屏县| 达孜县| 司法| 福贡县| 普格县| 辽源市| 镇沅| 邹平县| 罗江县| 五华县| 嘉祥县| 阜南县| 陆川县| 大渡口区| 平塘县| 舞钢市| 东乌珠穆沁旗| 永州市| 大港区| 大田县| 娄底市| 绥棱县| 武穴市| 新田县| 辛集市| 交城县| 皮山县|