Ho circa 28 milioni di record da importare in un database mySql. Il record contiene informazioni personali sui membri negli Stati Uniti e sarà ricercabile dagli stati.Divisione di un grande tavolo mySql in più piccoli - ne vale la pena?
La mia domanda è: è più efficiente suddividere il tavolo in tavoli più piccoli invece di tenere tutto in un unico grande tavolo? Quello che avevo in mente era di dividerli in 50 tabelle separate che rappresentavano i 50 stati come questo: membri_CA, membri_AZ, membri_TX, ecc;
questo modo ho potuto fare una query come questa:
'SELECT * FROM members_' . $_POST['state'] . ' WHERE members_name LIKE "John Doe" ';
In questo modo ho solo a che fare con i dati per un determinato stato in una sola volta. Intuitivamente ha molto senso, ma sarei curioso di sentire altre opinioni.
Grazie in anticipo.
Quindi, se si cerca un nome utente in tutti gli stati, verranno utilizzati 50 join? – Jacob
Non hai mai, mai voglia di fare la cosa che hai descritto. Tenerlo in 1 tavolo, mai dividerlo in 50 tavoli. C'è qualcosa chiamato partizionamento e MySQL ti permette di partizionare il tuo tavolo secondo alcune regole. Cercalo e prendilo da lì, e MAI, non pensare mai di creare una tabella separata se qualcosa differisce in 1 attributo. È un orribile design db e un incubo da mantenere, per non parlare dell'uso. –