↓快轉到主要內容

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