// Learning · 08
Where most performance problems actually live.
A sorted lookup structure so queries skip reading every row.
A group of writes that succeeds together or not at all.
How much concurrent transactions may see of each other.
Keep copies of the data on several nodes for reads and failover.
Split one dataset across databases by a key, each owning a slice.
Store data redundantly so reads stop paying for joins.
Check the cache first; on a miss, load from the DB and store it.
Loading a list, then querying again for every item in it.
Detect conflicting edits at save time instead of locking up front.
Reuse a small set of open connections instead of opening new ones.