1. 程式人生 > 資料庫 >《進大廠系列》系列-Redis哨兵、持久化、主從、手撕LRU

《進大廠系列》系列-Redis哨兵、持久化、主從、手撕LRU

早期資料庫模型有三種,分別為層次式資料庫、網路式資料庫和關係型資料庫。

而在當今的網際網路中,通常把資料庫分為兩類,即關係型資料庫和非關係型資料庫。

關係型資料庫

關係型資料庫是指採用了關係模型來組織資料的資料庫,而關係模型是由二維表及其聯絡組成的資料組織。

優點:

1、易於維護:都是使用表結構,格式一致;

2、使用方便:SQL語言通用,可用於複雜查詢;

3、複雜操作:支援SQL,可用於一個表以及多個表之間非常複雜的查詢。

缺點:

1、讀寫效能比較差,尤其是海量資料的高效率讀寫;

2、固定的表結構,靈活度稍欠;

3、高併發讀寫需求,傳統關係型資料庫來說,硬碟I/O是一個很大的瓶頸。

目前主流的關係型資料庫有

MYSQL

目前使用最廣泛的開源、多平臺的關係型資料庫,支援事務、符合ACID、支援多數SQL規範

SQL Server

支援事務、符合ACID、支援多數SQL規範,屬於商業軟體,需要注意版權和licence授權費用

Oracle

支援事務,符合關係型資料庫原理,符合ACID,支援多數SQL規範,功能最強大、最複雜、市場佔比最高的商業資料庫

Postgresql

開源、多平臺、關係型資料庫,功能最強大的開源資料庫,需要python環境,基於postgresql的TimeScaleDB,是目前比較火的時序資料庫之一。(更多學習內容,請點選python學習網)

非關係型資料庫

非關係型資料庫也稱為NOSQL(Not Only SQL),作為關係型資料庫的一個補充,能在特定場景和特點問題下發揮高效率和高效能。

常見的非關係型資料庫型別有鍵值(Key-Value)儲存資料庫和麵向文件資料庫(Document-oriented)

鍵值儲存資料庫類似hash,通過key做新增、刪除、查詢,效能高,優勢在於簡單、易部署、高併發,主要產品有

Redis

開源、Linux平臺、key-value鍵值型Nosql資料庫,簡單穩定,非常主流的、全資料in-momory、定位於“快”的鍵值型nosql資料庫

Memcaced

一個開源的、高效能的、具有分散式記憶體物件的快取系統,通過它可以減輕資料庫負載,加速動態的web應用

面向文件資料庫以文件的形式儲存,每個文件是一系列資料項的集合,每個資料項有名稱與對應的值,主要產品有

MongoDB

開源、多平臺、文件型nosql資料庫,“最像關係型資料庫”,定位於“靈活”的nosql資料庫。適用於網站後臺資料庫(更新快、實時複製)、小檔案系統(json,二進位制)、日誌分析系統(資料量大的檔案)。

知識點擴充套件:

Python的資料庫支援

經過兩個多月的學習,我們對Python的基礎語法大概都已經學完了,接下來我們要把我們學到的東西逐步用到應用的層面上。今天,我們要學的是,用Python實現資料庫的對接。

我們先來講一下什麼是api,在程式語言的學習中,我們經常會接觸到api這個詞,那麼究竟什麼是api,簡單來說就是一個介面,像java的api,有一個專門的api文件提供查詢。Python資料庫的api是DB API。我們主要講的api版本是DB API2.0。

Python DB API有三個模組屬性:

1、apilevel:這個屬性主要是用來定義使用的Python DB API 的版本,像我們上面說的DB API 2.0;

2、threadsafety:這個是用來定義模組的執行緒安全度;

該引數是一個0到3的整數,0表示執行緒不能共享模組,1表示執行緒可共享模組本身,2表示執行緒可共享模組和連線, 但不能共享遊標,3表示模組是絕對執行緒安全的。

3、paramstyle:這個屬性定義在SQL查詢中使用哪種引數風格,這裡說明一下,SQL是指資料庫的意思。

這個我們就不具體講了,因為現在剛接觸新知識,引入這個知識點,會很容易感到迷茫。

到此這篇關於python可以用哪些資料庫的文章就介紹到這了,更多相關python支援哪些資料庫內容請搜尋以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援!