# Engine & platform compatibility

Desktop: macOS Apple Silicon; Windows x64 is a preview. A Linux or macOS Intel desktop binary is not advertised in the checked release.

| Capability | MySQL 5.7 | MySQL 8.0 | MySQL 8.4 and 9.x | MariaDB 10.11+ and 11.x | Percona Server 8.0 and 8.4 / PXC |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **Offline plan files** | `EXPLAIN FORMAT=JSON` (the `query_block` format; no operator timing) | `EXPLAIN FORMAT=JSON` (cost estimates; no operator timing) | `EXPLAIN ANALYZE FORMAT=JSON` and `EXPLAIN FORMAT=JSON` | `ANALYZE FORMAT=JSON` and `EXPLAIN FORMAT=JSON` | 8.0: `EXPLAIN FORMAT=JSON`; 8.4: `EXPLAIN ANALYZE FORMAT=JSON` |
| **Live plans (Explain, Explore, Run analysis)** | Estimated plans only (`EXPLAIN FORMAT=JSON`); Run analysis is refused because 5.7 has no `EXPLAIN ANALYZE` | `EXPLAIN FORMAT=JSON`; Run analysis is refused before sending (`EXPLAIN ANALYZE FORMAT=JSON` is 8.3+) | Estimated and timed plans, schema, statistics, variables and trace | Estimated and timed plans, schema, statistics, variables and trace | 8.0: `EXPLAIN FORMAT=JSON`; 8.4: `EXPLAIN ANALYZE FORMAT=JSON` |
| **Query editor, Query digest, Database diagram** | SQL sessions and schema diagrams; Query digest Statement digests have no sample text, quantiles or CPU time on 5.7, and the Slow log table and Slow log file sources work | SQL sessions, digest summaries and schema diagrams | SQL sessions, digest summaries and schema diagrams | SQL sessions, digest summaries and schema diagrams | SQL sessions, digest summaries and schema diagrams |
| **Schema versions** | Read, compare, sync script and Export as SQL; Checks leave reserved words Not judged before 8.0.11 | Tables, views, routines, triggers and events from `SHOW CREATE`; sync script; Checks (current reserved words need a live 8.0.11+ connection) | Same (JavaScript libraries of 9.2+ are not read) | Same, plus sequences, packages and system-versioned tables (sequence and versioning changes are listed but not generated); Checks leave reserved words Not judged | Same as MySQL |
| **Server views, Processlist, Locks, Tuning** | Server diagnostics; Locks reads `INNODB_LOCKS` and `INNODB_LOCK_WAITS`; Error log gets file guidance; Parameters have no sources and no `SET PERSIST` | Server diagnostics; `performance_schema.error_log` requires 8.0.22+; older 8.0 gets file-viewing guidance | Server diagnostics | `userstat` fallbacks for index usage and table I/O when enabled; Waits requires Performance Schema. `metadata_lock_info` for MDL; verified local error log file or guidance | Server diagnostics plus Percona `userstat` index and table stats, thread-pool metrics, `log_slow_rate_limit` checks and Percona parameter links |
| **Replication and Cluster** | Replication (`SHOW SLAVE STATUS`), Group Replication from 5.7.17; reviewed Cluster changes need 8.0.13 | Replication (`SHOW REPLICA STATUS` / `SHOW SLAVE STATUS`), InnoDB Cluster, Group Replication | Replication (`SHOW REPLICA STATUS`), InnoDB Cluster, Group Replication | Replication (`SHOW ALL SLAVES STATUS`, `gtid_slave_pos`), MariaDB Galera Cluster | MySQL Replication, Group Replication, Percona XtraDB Cluster (`wsrep_*`, `pxc_cluster_view`) |
| **Users and roles** | Users only (5.7.6+); no roles | Users, roles, default roles, partial revokes and dynamic privileges | Users, roles, default roles, partial revokes and dynamic privileges | Users, MariaDB roles, `SET DEFAULT ROLE` and `PUBLIC` | MySQL privilege and role model |
| **Maintenance** | Upgrade check, dump and restore (structure only included); no `CLONE` | Upgrade check (`mysqlsh` or partial native subset), dump, restore, `CLONE` (8.0.17+) | Upgrade check, dump, restore, `CLONE` | Dump and restore (`mariadb-dump`); points to `mariadb-upgrade` and `mariadb-backup` for upgrades and physical copies | Upgrade check, dump, restore, `CLONE` (Percona Server) |

For manual MySQL JSON generation on 8.3+, select format version 2 with `SET SESSION explain_json_format_version=2` before EXPLAIN. Timed JSON analysis needs MySQL 8.3 or later (8.4 LTS); on earlier versions myflames refuses it before sending anything. MySQL 5.7 is end of life; myflames reads it and says in plain sentences what 5.7 lacks (roles, `SET PERSIST`, `EXPLAIN ANALYZE`, `CLONE`, `performance_schema.error_log`, invisible indexes). A MySQL 5.6 or older server gets a note that results may be missing or wrong.

ProxySQL 2.x and 3.x are supported in the ProxySQL place when connected to a ProxySQL Admin interface. Readyset is supported in the Readyset place when connected to a Readyset SQL adapter (`3307`) or Admin SQL (`6036`) listener, including multi-tier ProxySQL + Readyset + MySQL or MariaDB topologies.
