Per essere davvero schietti, MySQL è un database mentre JSON non lo è, quindi la risposta corretta è MySQL, senza esitazione. JSON è solo un linguaggio, e a malapena nemmeno quello. JSON non è mai stato progettato per gestire qualcosa come connessioni simultanee o qualsiasi tipo di manipolazione dei dati, poiché la sua funzione è quella di rappresentare dati, da non gestire esso.
Quindi vai con MySQL per archiviare i dati. Quindi dovresti usare un linguaggio di programmazione per leggere quel database e inviare tali informazioni come JSON, anziché archiviare effettivamente qualsiasi cosa in JSON.
Se memorizzi i dati in file, in formato JSON o altro, avrai tutti i tipi di problemi di cui le persone hanno smesso di preoccuparsi da quando i database hanno iniziato a essere utilizzati per la stessa cosa. Limitazioni di dimensioni, serrature, nome. È abbastanza buono quando hai un utente, ma nel momento in cui ne aggiungi altri, inizierai a risolvere così tanti problemi che probabilmente finiresti per scrivere un intero motore di database solo per gestire i file per te, mentre sei sempre con te avrebbe potuto semplicemente utilizzare un database vero e proprio.