mysql


Docker 玩轉 MySQL


MySQL 是世界知名的關聯式資料庫(RDBMS),相當多應用(Application)背後都是以 MySQL 作為後端資料庫,是除了 PostgreSQL 之外的另一選擇。

MySQL 官方也提供 Docker 映像檔(image)讓人可以輕鬆透過 Docker 運行容器化的 MySQL

本文記錄如何使用 Docker hub 上的 MySQL 。

Backend 淺談 database Transaction Isolation Levels


在資料庫管理系統中有 4 個很重要的特性被稱為 ACID(Atomicity, Consistency, Isolation, Durability) ,也就是不可分割性、一致性、隔離性、持久性,這 4 個重要特性是為了確保每個 Transaction 操作結果都是正確、可靠的。

其中 Isolation 是為了防止多個 Transactions 同時執行導致資料不一致的情況,而 Isolation 中又有所謂的 Isolation Levels ,根據 SQL-92 的標準分為 4 種級別:

  1. Repeatable Read
  2. Read Committed
  3. Read Uncommitted
  4. Serializable

高效能 MySQL 分頁


剛開始學寫程式時,是照著書本上的範例利用 LIMIT offset, row_count 來達到分頁的功能,但是隨著資料量越來越大,這種分頁方式會造成越後面的頁數 query 時間越長。因為在 MySQL 中有指定 offset 的情況下,並不會直接從該 offset 開始進行資料查詢,而是依照 where 條件取得所有資料之後,再從 offset 開始取出所需要的資料筆數。