- AWS – EC2: Instances, Storage and What They Cost
Reading an instance type instead of guessing — what m7g.large tells you before you look it up — and the four purchase options ranked by how much they actually save. Security groups are stateful and NACLs are not, which explains most 'why can I not connect' questions. EBS volume types, why gp3 replaced gp2, user data for first-boot setup, and SSM Session Manager so you can close port 22 for good.
- MySQL – CREATE TABLE, Constraints and ALTER
Writing the schema. CREATE TABLE column by column, PRIMARY KEY and why the pizza tables use a surrogate BIGINT, NOT NULL and DEFAULT, UNIQUE constraints and what they buy that application code cannot, FOREIGN KEY with ON DELETE CASCADE versus SET NULL — a choice the order tables make both ways on purpose — CHECK constraints, AUTO_INCREMENT, and ALTER TABLE on a table that already has rows in it.
- MySQL – Date and Time Types
DATE, TIME, DATETIME, TIMESTAMP and YEAR, and the one difference that matters: TIMESTAMP converts to and from the session time zone and DATETIME does not. Why the pizza schema stores DATETIME(6), what the fractional-seconds argument buys you, the 2038 problem TIMESTAMP still has, DEFAULT CURRENT_TIMESTAMP and ON UPDATE, and how to store an instant so it survives a server moving between time zones.
- MySQL – Data Types
Picking the right column type, and the two that cost real money to get wrong. INT versus BIGINT and what AUTO_INCREMENT actually runs out of, why every price column in the pizza schema is DECIMAL(10,2) and never FLOAT, VARCHAR versus CHAR and what the length really limits, TEXT and BLOB, ENUM and why the schema uses VARCHAR instead, BOOLEAN being TINYINT(1) in disguise, and utf8mb4 — the reason MySQL's own `utf8` cannot store an emoji.
- MySQL – Connections, URLs and Pooling
How an application actually talks to MySQL. Reading a JDBC URL parameter by parameter, why `serverTimezone` and `allowPublicKeyRetrieval` exist and when you need them, connection pooling with HikariCP and how to size a pool, `wait_timeout` and the stale-connection errors it causes overnight, and `max_connections` — the limit you meet on a bad day rather than a good one.