¿Cuál es la cantidad máxima de tablas que MySQL puede manejar?Número máximo de tablas en MySQL
Respuesta
El hecho de que haga esta pregunta es probablemente un indicador de que no está adoptando un enfoque de mejores prácticas para su problema.
Es posible que desee explicar por qué necesita crear muchas tablas, para ver si recibirá mejores sugerencias sobre cómo abordar este problema.
Sin embargo, no hay límites de servidor en el número de tablas en una base de datos MySQL, pero dado que cada tabla MyISAM tiene archivos asociados, cualquier límite del sistema operativo en la cantidad de archivos permitidos tendrá un efecto. Las tablas, índices, etc. de InnoDB se almacenan en un solo espacio de tabla, con un máximo de dos mil millones de tablas. (Source)
¿Qué es MyISAM? – John
MyISAM es el motor de almacenamiento predeterminado para MySQL. Es probable que sus tablas utilicen MyISAM a menos que indique explícitamente el uso de InnoDB. Cada tabla MyISAM se almacena en el disco en tres archivos. Los archivos tienen nombres que comienzan con el nombre de la tabla y tienen una extensión para indicar el tipo de archivo. Un archivo .frm almacena el formato de tabla. El archivo de datos tiene una extensión .MYD. El archivo de índice tiene una extensión .MYI. Más información: http://dev.mysql.com/doc/refman/5.0/en/myisam-storage-engine.html, http://en.wikipedia.org/wiki/MyISAM. –
+1 por responder la pregunta aún después de señalar que probablemente no sea una buena idea. –
Contrariamente a la respuesta de Daniel Vassallo, tengo un caso de uso en el que se necesita una gran cantidad de tablas. Podría estar equivocado, pero no creo que haya ninguna "mejor práctica" por la cual pueda reducir el número de tablas.
Aunque probablemente sea correcto que el número de tablas solo esté limitado por el SO, solo quiero agregar que estoy usando más de 1000 tablas en una base de datos con un rendimiento bastante bueno. El único inconveniente parece ser una sobrecarga aumentada para los archivos .frm. En mi caso, he dividido una mesa muy grande en más de 1000 mesas separadas con la misma estructura de tabla. La partición de MySQL no era una opción para mí debido a la desnormalización, que requiere 2 copias de cada registro en tablas separadas.
* "He dividido una mesa muy grande en más de 1000 mesas separadas" *: ¿por qué tienes que hacer eso? – TMS
Para mejorar el rendimiento (tiempos de consulta más rápidos). Como ya expliqué, la partición no era una opción porque no me permite colocar dos copias de cada registro en diferentes particiones (al menos no de ninguna manera). – robguinness
Desde el punto de vista de la normalización de datos, muchas tablas podrían ser una mala práctica (depende de las tablas). Solo digo que cada teoría debe ser probada en la práctica y viceversa. Así que dudo de la postura tomada en su comentario (en la respuesta), pero +1 por compartir lo que hizo. – hakre
También tengo un caso de uso donde se necesita una gran cantidad de tablas. Por el momento, una de nuestras bases de datos tiene cerca de 100.000 tablas con un rendimiento excelente.
Como mencionó Rob Guinness, hay una sobrecarga significativa para los archivos .frm. También es importante tener en cuenta que cualquier consulta en information_schema sin limitaciones en el esquema y si es posible la tabla en sí dará como resultado un golpe de rendimiento serio mientras se ejecuta la consulta.
¿Cada una de estas tablas tiene una estructura diferente? – TMS
El hecho de que haga esta pregunta es probablemente un indicador de que no está adoptando un enfoque de mejores prácticas para su problema.
Una posible situación en la que pueda necesitar una gran cantidad de tablas es cuando está desarrollando aplicaciones multi-arrendatario, donde por cada inquilino se crea conjunto separado de tablas (digamos con tentantId como un prefijo del nombre de la tabla). Consulte este artículo (parte Aislamiento de datos): http://www.javacodegeeks.com/2013/11/architecting-a-multi-tenant-application.html
- 1. Número máximo de tablas viables en SQL Server Y MySQL
- 2. Máximo de tablas en una base de datos MySQL
- 3. Rendimiento MySQL - Número de tablas vs. Número de filas
- 4. Número máximo de Ruby
- 5. Número máximo de Err.Raise?
- 6. Número alto de tablas temporales de disco de MySQL
- 7. tablas Joining basado en el valor máximo
- 8. Número máximo de instrucciones GLSL
- 9. Número máximo de cookies permitidas
- 10. Parámetros de función número máximo
- 11. Número máximo de HttpWebRequests concurrentes
- 12. Número máximo de unidades en windows?
- 13. ¿Número máximo de inodos en un directorio?
- 14. Número máximo de procesos en Linux
- 15. Número máximo de elementos enum en Java
- 16. tablas de separación mysql
- 17. Número máximo (utilizable) de filas en una tabla de Postgresql
- 18. Cuál es el tamaño máximo de int (10) en Mysql
- 19. mySQL MATCH en varias tablas
- 20. Funciones de PHP: número máximo de argumentos
- 21. ¿Cómo puedo establecer un número máximo de filas en la tabla MySQL?
- 22. MySQL loop through tablas
- 23. MySQL - Unir 2 tablas
- 24. Cómo bloquear tablas mysql en php
- 25. OpenSSL configure el número máximo de conexiones
- 26. Número de hilo máximo para una aplicación?
- 27. Jenkins: número máximo de trabajos simultáneos
- 28. iphone y notificaciones: ¿número máximo de notificaciones?
- 29. SQL DELETE - Número máximo de filas
- 30. Aumento MongoDB número máximo de conexiones
Para documentos, consulte [Límites en el número de bases de datos y tablas] (https://dev.mysql.com/doc/refman/5.5/en/database-count- limit.html) y similares. P.ej. 'InnoDB' permite hasta 4 mil millones de tablas (y debo admitir que si eso es US-Billones o no, no puedo decir). Para un comentario profesional: [Bill Karwin en "¿Hay un número máximo de tablas que una base de datos MySQL puede tener?"] (Https://www.quora.com/Es-aquí-un-número- máximo-de-tables- a-MySQL-database-can-have) – hakre