MySQL: Guides and Practical Know-how | mironsoft Blog
MySQL
-
May 10, 2026
cron_schedule logs every scheduled and executed cron job in Magento and can accumulate millions of rows within a few weeks if misconfigured. Once you understand the table's status transitions, set history_cleanup_every correctly, and step in manually when needed, you prevent slow cron runs and locking problems in production.
-
May 8, 2026
PhpStorm's Data Editor can do far more than change single cell values: multi-row selection, CSV import and export, and a built-in transaction mode make it a real bulk operations tool, one that deserves extra caution on remote connections to production databases.
-
May 5, 2026
InnoDB can compress tables page by page without the application noticing anything. The mechanism behind it, choosing the right KEY_BLOCK_SIZE, and the trade-off between storage savings and additional CPU overhead determine whether ROW_FORMAT=COMPRESSED truly pays off for a given table. For Magento installations with extensive log and archive tables, compression can noticeably reduce disk space and cache pressure, while for hot, frequently written core tables it can turn into a bottleneck.
-
Apr 18, 2026
In many organically grown Magento databases, the entire application, every cron job, and every reporting tool connects through the same, often years-old database account with full privileges. This article shows how to enforce defensible password policies with the validate_password component, configure password expiration and history cleanly, and apply the principle of least privilege with clearly separated accounts for read-only reporting, migrations, and actual application runtime.
-
Apr 4, 2026
When a MySQL server crashes in the middle of a write, the redo log decides whether data is lost or whether the database automatically repairs itself on the next start. Understanding write-ahead logging, checkpoint mechanics and log sizing is therefore not an academic exercise but the foundation for resilient production databases. This article explains the full mechanism with real configuration examples.
-
Mar 21, 2026
InnoDB stores data as a B-tree and is the default choice for nearly every MySQL installation, including Magento shops. Under very high write load, such as logging tables, change logs, or time series data, this approach hits limits: random writes cause page splits and noticeable write amplification. MyRocks replaces the B-tree with a Log-Structured-Merge-Tree derived from RocksDB, promising far less write overhead and smaller tables on disk. Whether the switch pays off depends heavily on the actual access pattern.
-
Mar 16, 2026
A nightly mysqldump usually lands unchecked in the backup directory until it's needed in an emergency and turns out to be empty or outdated. An automated database dump analysis in Bash reads size trends, table row counts, and schema changes directly from the dump file, without restoring it into a test database.
-
Mar 14, 2026
An InnoDB page is larger than the atomic write block of most storage systems, meaning a power failure in the middle of a write can leave a page half old and half new. The doublewrite buffer is the mechanism that reliably prevents exactly this scenario, the torn page. This article explains how it works, what it costs in performance, and when disabling it is actually worthwhile.
-
Mar 14, 2026
A composite index with the right columns in the wrong order is often worthless to the optimizer. The leftmost prefix rule determines which part of a composite index can be used at all, and putting equality columns before range columns squeezes noticeably faster queries out of the same index without any extra storage.
-
Mar 5, 2026
Not every replica needs the full dataset of the source. Replication filters make it possible to build reporting replicas without sensitive customer data, or multi-store setups with cleanly separated databases, but they come with their own pitfalls the moment a filter needs to change after the fact.