2011-09-21 31 views
6

Ésta es una pregunta por el simple hecho de preguntar:¿El tamaño de la tabla afecta el rendimiento de INSERTAR?

prohíbe otras intermedia a temas avanzados o técnicas (índices agrupados, inserciones masivas, trucos de exportación/importación, etc.), no un INSERT tomar más tiempo cuanto mayor sea una mesa crece?

Esto supone que solo hay una columna auto-int, ID [es decir, todas las filas nuevas están INSERTADAS en la parte inferior, donde no se ha barajado ninguna memoria para acomodar un posicionamiento de fila específico].


Un enlace a un buen "MySQL evaluación comparativa" sería muy útil. Llevé a Oracle a la escuela, y hasta ahora el conocimiento no me ha servido de nada en SO.

Gracias a todos.

Respuesta

5

Mi experiencia ha sido que el rendimiento se degrada si el índice del conjunto de datos ya no cabe en la memoria. Una vez que eso suceda, las comprobaciones de índices duplicados tendrán que golpear el disco y se ralentizará considerablemente. Haga una tabla con la cantidad de datos que cree que tendrá que tratar, y realice algunas pruebas y ajustes. Es realmente la mejor manera de saber con qué te encontrarás.

1

Solo puedo compartir mi experiencia. Espero eso ayude.

Estoy insertando muchas filas en ese momento, en una gran base de datos (varios millones de entradas). Tengo un script que imprime la hora anterior y posterior a la ejecución de las inserciones. bueno, no he visto ninguna caída en las actuaciones.

Espero que te haya dado una idea, pero estoy en sqlite no en mysql.

+0

Le daré la mejor respuesta si me muestra una versión genérica de su script de evaluación comparativa de rendimiento con resultados de muestra de salida. Gracias. – Droogans

+0

no es un script de evaluación comparativa, ya que dije que imprimí la hora antes y después de las consultas para ver cuánto tiempo toman. Uso una secuencia de comandos python y esta es la declaración para hacer eso: print datetime.datetime.now(). Strftime ("% H:% M:% S") – Danny

6

Sí, pero no es el tamaño de la tabla en sí, sino el tamaño de los índices que importan. Una vez que la reescritura del índice comienza a agitar el disco, notará una desaceleración. Una tabla sin índices (por supuesto, nunca tendría tal cosa en su base de datos) no debería verse degradada. Una tabla con índices compactos mínimos puede crecer a un tamaño relativamente grande sin ver la degradación. Una tabla con muchos índices grandes comenzará a degradarse antes.

+0

"Reescritura de índices" en Google ahora ... gracias. – Droogans

1

La velocidad no se ve afectada siempre y cuando MySQL pueda actualizar el índice completo en la memoria, cuando comience a intercambiarse, el índice se volverá más lento. Esto es lo que sucede si reconstruyes un enorme índice instantáneamente usando ALTER TABLE.

Cuestiones relacionadas