8.0 went GA in April and the correlated subquery can retire. The plans before and after, the recursive CTE that replaces a loop, and the upgrade nobody expects.
Every framework had middleware and none of them agreed on the signature, so a piece of middleware was written once per framework despite doing the same thing. The…
Earlier versions accepted DESC in an index definition and ignored it, which is worse than rejecting it because the query looked optimised and was doing a filesort. It…
A list used as a queue loses the message when a consumer crashes mid-work, because BRPOP removes it and there is no record that anything was in flight.…
Compressing the same unchanging JavaScript bundle on every request is work done thousands of times that could have been done once. With gzip_static on, nginx serves app.js.gz when…
Turning off timestamp validation removes a stat call per file per request and means PHP never notices a changed file — so a deploy that does not reset…
The character set named utf8 in MySQL has always been a three-byte subset that cannot store an emoji or several CJK characters, and 8.0 makes the four-byte one…
An instrumenting profiler records every function call, which changes the timings it is measuring — small fast functions look disproportionately expensive because the overhead is per call. Sampling…