Gestirò più di 300.000 utenti. Ogni utente (dopo aver effettuato l'accesso) sarà in grado di creare diciamo "cartelle", in ogni cartella, gli utenti creeranno "nome = valore, nome2 = valore2, nome3 = valore3" coppie di voci. Ogni nome non sarà più di 260 caratteri e ogni valore non sarà più di 1024 byte. Tutti i caratteri leggibili.
Le mie idee per possibili approcci:
-
Crea tabelle chiamate userentries_ [prima lettera del nome utente] in modo che ci siano 26 tabelle, ogni tabella avrà le voci e l'ID utente. Quindi quando voglio recuperare i dati dell'utente, lo farò
select * from userentries_[firstletter] where userid= $UID"
-
Crea una singola tabella per contenere tutte le informazioni.
-
Crea una tabella chiamata userdata, qui avrò UID e FileName. Quindi, quando l'utente vuole recuperare i dati, leggerò il database per trovare il nome del file, quindi aprirò FileName in PHP, creerò una risposta XML / JSON e il client (che sarà app android / ios / desktop) lo elaborerà.
Qual è la migliore e più ottimizzata (speed / performance vise)?
P.S. le coppie nome = valore, ecc. non saranno ricercabili, anche se l'utente dovrebbe cercare attraverso di esse, sarà sul lato client, sicuramente non sul DB