mysql

  • MySQL 8.0.30 generated invisible primary keys

    October’s point release can add a hidden primary key to a table created without one, which matters for replication and for group replication in particular. A table without…

  • The database that was 80% dead rows

    180 GB on disk and 41 GB of data. A table that was deleted from daily and never shrank.

  • A view as a published interface over a table

    A consuming team reading a table directly means the column names are a public API, and renaming one is a coordinated release. The grant is what makes this…

  • Deleting versus anonymising, and the accounting rows

    A deletion request does not override a legal obligation to keep invoices, so the answer is per table rather than global. The anonymised row keeping its identifier is…

  • An index hint is a bug report about the optimiser

    Forcing an index makes one query faster today and freezes a decision that the optimiser would otherwise revisit as the data changes. A hint is appropriate as a…

  • An audit log records reads, not only writes

    For anything with personal or financial data, who looked at it is a question that gets asked, and a write-only audit log cannot answer it. Recording a list…

  • A GDPR deletion request across eleven tables

    A request arrived and nobody could say where the data was. Personal data in eleven tables, three of them denormalised copies.

  • A backup that has never been restored is a hope

    A backup job that reports success proves that a file was written, which is a different claim from the data being recoverable. Measuring the recovery time objective rather…

  • Point-in-time recovery needs a binlog you kept

    A nightly backup restores to midnight, and recovering to the moment before a bad migration needs the binary logs since then. The retention setting is the one that…

  • Reading from a replica in a transaction is not a read

    Opening a transaction pins the connection, so a read inside one goes to the primary regardless of what the router intended. The test-suite case is the one that…