Alguna vez trabajé con una base de datos MySQL muy grande (Terabyte +). La mesa más grande que tuvimos fue, literalmente, más de mil millones de filas.
Funcionó. MySQL procesó los datos correctamente la mayor parte del tiempo. Aunque fue extremadamente difícil de manejar.
Solo hacer una copia de seguridad y almacenar los datos fue un desafío. Tomaría días restaurar la tabla si lo necesitáramos.
Tuvimos numerosas tablas en el rango de 10-100 millones de filas. Cualquier unión significativa a las tablas consumía mucho tiempo y tomaría para siempre. Así que escribimos procedimientos almacenados para 'recorrer' las tablas y procesar las uniones en rangos de 'id'. De esta forma, procesamos los datos de 10 a 100 000 filas a la vez (se unen contra los números de identificación de 1 a 100 000 y 100,001 a 200 000, etc.). Esto fue significativamente más rápido que unirse contra toda la tabla.
Usar índices en tablas muy grandes que no se basan en la clave primaria también es mucho más difícil. Mysql almacena índices en dos partes: almacena índices (que no sean el índice principal) como índices de los valores de las claves primarias. Por lo tanto, las búsquedas indexadas se realizan en dos partes: First MySQL va a un índice y extrae los valores clave principales que necesita encontrar, luego realiza una segunda búsqueda en el índice de clave principal para encontrar dónde están esos valores.
La red de esto es que para tablas muy grandes (1-200 millones más filas) la indexación contra tablas es más restrictiva. Necesita menos índices, más simples. Y hacer incluso simples declaraciones selectivas que no están directamente en un índice puede que nunca vuelvan. Donde las cláusulas deben presionar índices u olvidarse de ello.
Pero dicho todo eso, las cosas realmente funcionaron. Pudimos usar MySQL con estas tablas muy grandes y hacer cálculos y obtener respuestas correctas.
Bueno, realmente no te gustaría dividir una tabla si crece, solo quieres dividirla. –
posible duplicado de [¿Qué tan grande puede obtener una base de datos MySQL antes de que el rendimiento comience a degradarse] (http://stackoverflow.com/questions/1276/how-big-can-a-mysql-database-get-before-performance-starts -to-degradar) – random