- MongoDB – Why NoSQL, and When Not To
What a document store actually buys you, what it costs, and the four cases where a relational database is still the right answer.
- MySQL – Window Functions
Aggregating without collapsing the rows. OVER (PARTITION BY ... ORDER BY ...), ROW_NUMBER, RANK and DENSE_RANK and the difference ties make, LAG and LEAD for comparing a row to the one before it, running totals with a frame clause, NTILE, and the top-N-per-group problem — which is genuinely awkward without window functions and three lines with them.
- LeetCode 47 – Permutations II
Permutations with duplicates, and the extra line is a different extra line from the one Combination Sum II uses — which catches people who think they already learned this trick. With no start index, used[] is the only signal of depth, so the rule becomes !used[i-1]. All three de-duplication rules compared side by side.
- MySQL – Common Table Expressions (WITH)
WITH, added in MySQL 8, and the reason a long query stops being unreadable. A CTE versus a derived table versus a view, chaining several CTEs so each step is named, referencing one twice, and RECURSIVE — walking a parent-child tree and generating a gap-free date series to report on days that had no orders at all.
- AWS – RDS: Managed Databases and What Managed Means
What RDS takes off your hands and what it very much does not. Multi-AZ is failover and not a read replica — the single most expensive misunderstanding in the service — plus parameter groups, subnet groups and the security group rule that is the reason you cannot connect. Backups, PITR and the retention window that defaults to a number you would not choose, and how to restore without praying.