A job dispatched inside a transaction can be picked up by a worker before the transaction commits, and the worker then cannot find the row it was told…
The tests need MySQL and Redis, and CI gives you an empty machine. Service containers, where they differ from compose, and the readiness nothing does for you.
Two workers claiming with FOR UPDATE serialise, so adding workers adds no throughput — which is the thing a queue exists to provide. Keeping the transaction short is…
The slow log ranks by individual duration, so a query taking two seconds once appears above one taking forty milliseconds two hundred thousand times. Ranking by total time…
Squashing two hundred migrations into a schema dump takes forty seconds off every test run, and it introduces a second source of truth that has to be kept…
The replica was up, accepting connections and serving data from an hour ago. Seconds_Behind_Master reported zero, honestly, and was measuring the wrong thing.
EXPLAIN shows the plan and the optimiser’s estimates, and the estimates are frequently wrong — a query planned for 40 rows that reads 400,000 looks entirely healthy. The…
Every PHP request opens its own database connection, so a hundred concurrent requests is a hundred connections — and there is no pool because there is no process…