淺談各種資料庫cache策略: cache aside、read through、write through、write back
資料庫的快取策略那麼多種: cache aside、read through、write through、write back,
常常哪個是哪個也分不清楚、記不起來,今天將分享這些策略背後的內功心法,
讓大家不用在為了記不起這些招式的名稱而傷腦筋。
什麼是資料庫快取(database cache)?
快取是一種策略,用來增進你的應用程式及資料庫的效能,
作法是將常使用的資料放在具有更快存取速度的的記憶體中(in
[System Design] 淺談Database Replication,有何優缺點、做法及何處可見?
database replication是什麼?有什麼好處及缺點,方法又有哪些呢? 可以在許多系統中看到replication的應用,
像是各種NoSQL、自己系統的(讀寫分離、cache、search engine)、CDN、DNS等等...
[System Design] 淺談Database Partition. Centralized and Distributed.
什麼是partition,vertical跟horizontal partition有何不同? 阿sharding又是什麼?
這些跟NoSQL有關嗎? 在傳統的RDBMS,像是MySQL或PostgreSQL中,這些概念也有用嗎?
這篇文章將討論上述的問題,看看partition在RDBMS及NoSQL中的實踐應用,以及各種優缺點。
什麼是Partition
Partition原意就是分拆的意思,在資料的世界裡,就是把一份資料,分成許多小份,
比如說log file的rotation也是,把今年的日記寫在同一本,去年的日記是另一本也是partition。
[System Design] Data model: Relational V.S. Document
開發應用程式時,時常使用到資料庫,儲存資料並在之後需要時將其取出,如今有許多的資料庫產品可供選擇,提供各種不同的data model及function,在各種使用情境下有不同的表現,開發者根據你的應用程式的需求、資料之間的關係、access pattern、scalability、ACID transaction、fault-tolerance、會有各種不同的適合的選擇.
接下來只單純討論資料庫提供給我們application programmer們的data model,看看是否在哪些情況比較適合用哪一種,