MariaDB è nato come fork di MySQL ed è rimasto compatibile per anni. Da allora si sono divisi abbastanza da rendere il passaggio dall'uno all'altro una migrazione e non una sostituzione - ma per una normale applicazione PHP entrambi eseguono lo stesso schema e le stesse query.

Dove la differenza pesa davvero

  • JSON. MySQL ha un vero tipo JSON con indicizzazione. MariaDB conserva il JSON come testo con un vincolo di controllo: portabile, e più lento per tutto ciò che interroga dentro il documento.
  • La replica. MySQL usa i GTID, MariaDB ha un suo schema. Non sono intercambiabili, quindi una replica non può essere dell'altro.
  • Funzioni finestra e CTE. Ora ce le hanno entrambi; le installazioni vecchie, dell'uno come dell'altro, forse no.
  • I motori di archiviazione. MariaDB porta con sé extra come Aria e ColumnStore. Non servono quasi a nessuno.

Come capire quale ha

mysql -V
mysql -e "SELECT VERSION()"
# 10.x or 11.x is MariaDB; 8.x is MySQL

Passare dall'uno all'altro

Dump e importazione, mai una copia di file. Le directory dei dati non sono compatibili, e un datadir copiato produce un database che si avvia e poi si comporta in modo strano: assai peggio di uno che si rifiuta di partire.
mysqldump --single-transaction --routines --triggers --default-character-set=utf8mb4 db > db.sql
# then import into the other engine and CHECK the row counts per table

Quale scegliere per un sito nuovo

Quello che porta la sua distribuzione e che il suo host supporta. La differenza di prestazioni per una tipica applicazione PHP sta dentro il rumore; contano assai di più il buffer pool, gli indici e le query: veda innodb_buffer_pool_size e quando aggiungere un indice.

Se la sua applicazione ne documenta uno in particolare, usi quello. I problemi di compatibilità sono rari e sono una pena quando capitano.