[Postgres] 資料庫的索引(Index)
前言
上一篇記錄了資料庫儲存資料的概念與其儲存結構,本文將初步探討資料庫裡的 索引(Index) ,了解 Index 的作用、行為以及實際操作方式。
上一篇記錄了資料庫儲存資料的概念與其儲存結構,本文將初步探討資料庫裡的 索引(Index) ,了解 Index 的作用、行為以及實際操作方式。
過去在使用 Redis 指令時,都是一條一條指令發送給 Redis ,每條指令都會經過 發送指令 -> Redis server 接收指令 -> 處理資料 -> 回傳結果 的流程,這樣一來一回花費的時間稱作 **round-trip time (簡稱RTT)**,在傳送過程中還需考量網路每次建立連線耗時與延遲問題。
若同時有多條指令要處理時,RTT 就會拉長,為縮短多個指令在同時間排隊分別執行造成的效能問題,Redis 提供 Pipeline 的機制,讓多個指令在同時間執行且不需相互等待,一次回傳所執行完的結果。
既然這項機制對於效能提升有幫助,來了解一下 Redis Pipeline 的概念及使用上要注意的項目吧!
為確保資料的正確性, Redis 也提供了類似於關聯式資料庫的 Transaction 機制,但 Redis 提供的 Transaction 有一些相異之處 e.g. 不支援 rollback,本篇文章紀錄 Redis Transaction 的概念與使用方式。
昨日的文章討論到 Redis 儲存物件用的資料結構 - Hash,本篇接著探討 Redis 的另一個資料結構 - SET
上一篇探討了 Redis Lists 資料結構,本篇將紀錄 Redis 儲存物件用的資料結構 - Hash
延續 上篇 討論到 Redis 基礎的資料結構 - String,本篇要討論另一個資料結構 - Lists
Redis 是熱門且開源的資料庫,以記憶體為主(in-memory)進行資料存取,並以鍵值 (key-value) 的形式存放資料庫內。
由於資料是基於記憶體進行讀寫,記憶體讀取的速度較一般硬碟來得快!Redis 這項優勢被廣泛地運用在大型系統裡做資料快取,加快整體系統效能,不僅有助於提高系統回應的速度,同時能減少關聯式資料庫的工作量(前面 Redis 可以應付使用者送來的請求,就不需要再到後方主資料庫讀取資料)。
先前使用 Python 測試物件、變數是否為指定的『類別』或『資料型態』 時(e.g. int
、float
、bool
、str
、list
……),都是使用 type()
方法,但其實 Python 有提供 isinstance()
函式,此法是較好的作法,不僅執行速度較快,也適用於自己建立的 Class 物件繼承(type()
不考慮物件繼承,若為繼承類別的物件不會判斷與父類是相同類別)數,來看看他有哪些特性與用法吧!