An invisible index is maintained on write and ignored by the optimiser, which makes dropping an index a reversible experiment instead of a commitment. The write cost is…
Indexing an expression required adding a generated column and indexing that, which means a schema change and a column nobody wants in a SELECT *. The double parentheses…
The optimiser chooses a plan from statistics it samples, and a table whose distribution has changed since the last sample gets a plan chosen for the old data.…
Dropping an index that turns out to be load-bearing means rebuilding it on a large table under pressure, which is why unused-looking indexes survive for years. A week…
8.0 defaults to utf8mb4_0900_ai_ci and a table converted from 5.7 is almost certainly utf8mb4_general_ci — and joining two columns with different collations cannot use an index on either.…