Database
SQL 基本查詢
·2 分鐘
演算法
Database
Sql
SELECT … WHERE 的條件組合,以及 NULL 的三值邏輯:任何跟 NULL 的比較都不是 true,要用 IS NULL
Sharding, Hot Shards, And Cross-Shard Pain
·12 分鐘
資料庫
Database
Database-Scaling
Sharding
Hot-Shard
Multi-Tenant
Shard key 不是選一個欄位而已,而是承擔 workload、skew、routing 和 transaction trade-off
Replication Lag And Replica Routing
·11 分鐘
資料庫
Database
Database-Scaling
Replication
Read-Replica
Consistency
把 read replica 從讀流量擴充,講到 read-after-write correctness 和 routing policy
Transactions, Isolation, And MVCC
·12 分鐘
資料庫
Database
Transactions
Isolation
Mvcc
Locking
Oracle
把 ACID、isolation anomalies、MVCC、locking 和 retry 拆成可防守的 backend 答案
Composite Index And Query Triage
·9 分鐘
資料庫
Database
Composite-Index
Query-Plan
Oracle
Sargability
Query-Optimization
用 predicate、order、projection、plan shape 和 write cost 判斷 composite index 是否真的對
B+Tree And Index Internals
·11 分鐘
資料庫
Database
Index
Btree
Query-Optimization
Storage-Engine
Query-Plan
從 page read、access path、selectivity、row fetch 和 write tax 重新整理 index 心智模型
LeetCode 584: Find Customer Referee
·1 分鐘
LeetCode
Easy
Database
Sql
LeetCode 584 解題筆記:referee_id != 2 會漏掉 NULL,因為跟 NULL 比較的結果是 unknown;要另外加上 IS NULL
LeetCode 1757: Recyclable and Low Fat Products
·1 分鐘
LeetCode
Easy
Database
Sql
LeetCode 1757 解題筆記:兩個條件都要成立,用 WHERE … AND … 過濾
LeetCode 620: Not Boring Movies
·1 分鐘
LeetCode
Easy
Database
LeetCode 620 解題筆記:id 是奇數而且 description 不是 boring,按 rating 由高到低排序
LeetCode 596: Classes With at Least 5 Students
·1 分鐘
LeetCode
Easy
Database
LeetCode 596 解題筆記:按 class 分組,HAVING COUNT(DISTINCT student) >= 5;舊版測資有重複的列,要數不同的學生
LeetCode 595: Big Countries
·1 分鐘
LeetCode
Easy
Database
LeetCode 595 解題筆記:面積至少 300 萬或人口至少 2500 萬,用 WHERE 加 OR 過濾
LeetCode 197: Rising Temperature
·1 分鐘
LeetCode
Easy
Database
LeetCode 197 解題筆記:Weather self join,條件是兩天的日期差 1 天而且今天比較熱;日期要用 DATEDIFF 比,不能比 id