Snowflake ID 是 Twitter 2010 年提出的 64-bit 整數 ID 方案,靠時間戳在前讓 ID 大致照時間排序,同時保留在多台機器上各自生成、不需要中央發號的能力。這篇整理 Snowflake 的位元結構、理論上限、Discord 與 Instagram 等各家變體的差異,解釋機器 ID 協調問題是最大的運維負擔,並比較 Snowflake 與 UUIDv7、ULID 的取捨,附上 Java、Go、Node.js 的程式碼範例。
Snowflake ID 深入解析|位元結構、各家變體與選型取捨
UUID 版本演進與 ULID 完整指南|v1 到 v7 差異與資料庫主鍵選擇
UUID 從 RFC 4122 走到 RFC 9562,歷經 v1 到 v8 多個版本,設計目標各不相同。這篇整理 v1 時間加 MAC、v4 純隨機、v6 重排到 v7 時間排序的位元結構與背景,說明為什麼 UUIDv4 當資料庫主鍵會造成 B-tree 索引碎片、拖慢寫入,以及時間可排序的 UUIDv7 與 ULID 如何解決這個問題,並比較 v7 與 ULID 的取捨、給出主鍵選型建議,簡介 Snowflake、KSUID、NanoID,附上 PostgreSQL、Java、JavaScript、Python 產生 UUIDv7 與 ULID 的程式碼範例。
PostgreSQL 入門給 MySQL/MariaDB 與 SQL Server 用戶|差異對照與遷移筆記
從 MySQL、MariaDB 或 SQL Server 轉到 PostgreSQL 的開發者越來越多,但兩邊在識別字大小寫、AUTO_INCREMENT 與 IDENTITY 對應、UPSERT 寫法、Schema 設計、預存程序、連線模型上的差異,往往讓熟手卡關。這篇整理兩類用戶最常踩到的坑,比較三家在型別系統、交易隔離、索引、備援機制上的取捨,也說明 PostgreSQL 真正強在哪些場景、哪些情境反而 MySQL 或 SQL Server 更適合,幫助已經有資料庫基礎的讀者少走冤枉路。
PostgreSQL 入門學習筆記 資料型態與DDL
PostgreSQL 有超強的資料型態系統,支援 JSON、陣列、地理座標、範圍型態、網路型態等。甚至可以自訂型態、運算子與函數,安裝套件還可以成為大語言模型的RAG資料庫。還有從設計階段就全面支援交易的一致性與隔離性,採用 MVCC 架構讓讀寫可同時進行而不互鎖,並提供精細的行鎖與 Savepoint 控制。
資料庫教學7-1:資料表視圖(View)教學 #MySQL #MariaDB
視圖是資料庫中一種虛擬的表格,它基於一個或多個實際表格的查詢結果而創建。它可以被視為一個預先定義的查詢,具有獨立的名稱,方便查詢和使用。通過使用視圖,可以將複雜的查詢操作簡化為單個表格,提供更清晰、更易讀的數據視圖。視圖還可以用於控制對數據的訪問權限,只提供特定的數據子集給用戶或應用程序。它提供了更高的數據安全性和隱私保護。
資料庫教學3-4:資料庫正規化是什麼? #MySQL #MariaDB
資料庫正規化(Database normalization)簡單的講就是讓資料庫避免重複資料、減少空間浪費、避免資料不一致、讓資料更好管理的一系列規劃方式。本篇文章屬於概念性質,對於MariaDB、MySQL、MS SQL、Oracle Database、H2 Database等各種使用SQL的關聯式資料庫都是通用的概念。
資料庫教學2:我該使用MariaDB還是MongoDB? #MySQL #MariaDB
關連式資料庫管理系統(RDBMS)存在已久,有嚴謹的資料結構檢查能力,到現在還是非常好用。NoSQL是網路迅速發展時代下的後起之秀,通常捨棄那些資料結構檢查來提高效能,也漸漸成為各種應用的優先選擇。本篇文章也可以看作是「我該使用傳統關連式資料庫還是文件式NoSQL資料庫?」,我會介紹兩者功能的差異、授權方式的考量、我自己的實務應用方式。
MongoDB的Transaction教學,讓MongoDB不再只能做「假交易」
早期的MongoDB沒辦法做Transaction,必須用要使用db.collection.findAndModify()來進行尋找合併修改的元子操作,或是透過Two Phase Commit來模擬交易行為。好消息是從MongoDB 4.0開始增加了Transaction機制,MongoDB 5.0、6.0又更完善了此功能。本文教大家如何在透過JavaScript來使用真正的MongoDB Transaction。
資料庫教學3-2:Data Type 資料型態 #MySQL #MariaDB
從第一章看過來的各位可能已經等不及要操控資料庫了,但是先等等,必須先了解資料型態才能在建立資料表的時候知道我們需要什麼樣 […]
資料庫教學3-1:資料庫與資料表介紹 #MySQL #MariaDB
為了讓還沒有概念的人可以理解資料庫的概念,本文會以Excel來類比資料庫,這只是為了讓新手可以快速想像出資料的模樣,但資 […]