mysql

細說 MySQL 與 UUIDs 的問題

因為 UUID 提供低碰撞的隨機性,所以實務上蠻多人會使用 UUID 作為資料表的主鍵(PK),不過使用上要注意一些事: 使用 VARCHAR 作為儲存 UUID 的資料型態,會佔據較多的

Posted on  Jul 3, 2023  by  Amo Chen  ‐ 1 min read

從 serverless-mysql 學 serverless 技巧

最近不少公司或是技術文章會分享他們如何用 serverless 的架構省錢,這主要得益使用 serverless 除了有基本免費的額度之外, serverless 的架構不需要常駐的伺服器花費,相當於省去租

Posted on  Jun 29, 2023  by  Amo Chen  ‐ 1 min read

Docker 玩轉 MySQL

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

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

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

Last updated on  Apr 19, 2020  in  用 Docker 架設服務  by  Amo Chen  ‐ 3 min read

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

Posted on  Sep 30, 2018  in  資訊技術探索  by  Amo Chen  ‐ 3 min read

用 MySQL Sample Database (test db) 學習 SQL

每一個初學 MySQL database 的人都會遇到一個問題——「有沒有現成的資料庫可以使用?」

幸好有善心人士整理一個 sample database 供大家下載回去練習,datacharmer/test_db

這個 sample database 是模擬一個公司儲存的產品、員工、客戶等資料的資料庫,雖然是模擬資料但是足夠讓人學習各式各樣的 MySQL 語法及功能,包含 SELECT, UPDATE, DELETE, JOIN 等,而且就算不小心玩壞了也不會造成任何損失,只要從新建一個新的就好,蠻推薦初學者充分利用這份資源的。

Last updated on  Oct 21, 2023  in  MySQL  by  Amo Chen  ‐ 1 min read

高效能 MySQL 分頁

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

Posted on  May 29, 2016  in  MySQL  by  Amo Chen  ‐ 2 min read