sql >> Base de Datos >  >> RDS >> Mysql

MySQL:¿Muchas tablas o muchas bases de datos?

No debería haber una diferencia de rendimiento significativa entre varias tablas en una sola base de datos y varias tablas en bases de datos separadas.

En MySQL, las bases de datos (el SQL estándar usa el término "esquema" para esto) sirven principalmente como un espacio de nombres para las tablas. Una base de datos tiene solo unos pocos atributos, p. el conjunto de caracteres y la intercalación predeterminados. Y ese uso de GRANT hace que sea conveniente controlar los privilegios de acceso por base de datos, pero eso no tiene nada que ver con el rendimiento.

Puede acceder a las tablas de cualquier base de datos desde una única conexión (siempre que estén gestionadas por la misma instancia de MySQL Server). Solo tienes que calificar el nombre de la tabla:

SELECT * FROM database17.accounts_table;

Esto es puramente una diferencia sintáctica. No debería afectar al rendimiento.

Con respecto al almacenamiento, no puede organizar tablas en un archivo por base de datos como especula @Chris. Con el motor de almacenamiento MyISAM, siempre tiene un archivo por tabla. Con el motor de almacenamiento InnoDB, tiene un solo conjunto de archivos de almacenamiento que fusionan todas las tablas, o bien tiene un archivo por tabla (esto está configurado para todo el servidor MySQL, no por base de datos). En cualquier caso, no hay ninguna ventaja o desventaja de rendimiento al crear las tablas en una sola base de datos frente a muchas bases de datos.

No hay muchos parámetros de configuración de MySQL que funcionen por base de datos. La mayoría de los parámetros que afectan el rendimiento del servidor tienen un alcance para todo el servidor.

Con respecto a las copias de seguridad, puede especificar un subconjunto de tablas como argumentos para mysqldump dominio. Puede ser más conveniente hacer copias de seguridad de conjuntos lógicos de tablas por base de datos, sin tener que nombrar todas las tablas en la línea de comandos. Pero no debería hacer ninguna diferencia en el rendimiento, solo conveniencia para usted cuando ingresa el comando de copia de seguridad.