Tengo alrededor de 28 millones de registros para importar a una base de datos mySql. El registro contiene información personal sobre los miembros en los EE. UU. Y los estados podrán buscarlo.Dividir una gran tabla mySql en otras más pequeñas: ¿vale la pena?
Mi pregunta es, ¿es más eficiente dividir la mesa en tablas más pequeñas en lugar de mantener todo en una gran mesa? Lo que tenía en mente era dividirlos en 50 tablas separadas que representaban los 50 estados, algo así como: members_CA, members_AZ, members_TX, etc;
De esta manera yo podría hacer una consulta como esta:
'SELECT * FROM members_' . $_POST['state'] . ' WHERE members_name LIKE "John Doe" ';
De esta manera sólo tengo que tratar con datos para un estado dado de una vez. Intuitivamente tiene mucho sentido, pero me gustaría escuchar otras opiniones.
Gracias de antemano.
Entonces, si busca un nombre de usuario en todos los estados, ¿usará 50 uniones? – Jacob
Nunca, nunca desea hacer lo que describió. Guárdelo en 1 tabla, nunca lo divida en 50 tablas. Hay algo llamado partición y MySQL le permite particionar su tabla de acuerdo con algunas reglas. Investígalo y tómalo desde allí, y NUNCA, nunca pienses en crear una tabla separada si algo difiere en 1 atributo. Es un horrible diseño db y una pesadilla para mantener, y mucho menos usar. –