2012-04-12 9 views
6

Estoy insertando en una pequeña mesa simple con 5 atributos y 1000 filas.Mysql: Insertar rendimiento INNODB vs MYISAM

Observé cuando el motor es INNODB, cada inserción está tomando 0.03 - 0.05 segundos. Cambié el motor a MYISAM, luego las inserciones son más rápidas. está tomando 0.001 - 0.003.

¿Cuál es el problema. innodb_flush_log_trx_commit = 1 de forma predeterminada. Yo era este entorno tal como es. Aquí está mi configuración innodb.

innodb_log_buffer_size : 1MB 
innodb_log_file_size : 5MB 
innodb_buffer_pool_size: 8MB 
innodb_flush_log_trx_commit = 1 

No pude averiguar qué salió mal con esto. Gracias de antemano. Saludos, UDAY

+0

usted debe tratar de publicar esto en http://dba.stackexchange.com/ o http://serverfault.com –

+0

gracias micrófono. Lo hice. – Uday

+0

No hay problema hombre, buena suerte. –

Respuesta

3

innodb_flush_log_at_trx_commit = 1 significa que cada transacción se escribe en el búfer de registro.

Establézcalo en 0 para obtener un mejor rendimiento, o mejor intente hacer todas las inserciones dentro de una transacción (no olvide comprometerse al final).

se puede ver en http://dev.mysql.com/doc/refman/4.1/en/innodb-parameters.html para más detalles sobre innodb_flush_log_at_trx_commit y otras variables

+0

Hola Argeman, Aquí estoy preocupado acerca de por qué con esta variable establecida en 1, muestra algunas posiciones muy bajas como 120K inserciones por hora. Mantener un lado cambiando este valor a 2, lo que podría ser la razón de este peor rendimiento con este valor establecido en 1. – Uday

+0

El motivo es que cada transacción se escribe en el almacenamiento intermedio de registro. Si ahora hace inserciones sin ponerlas manualmente en una transacción, cada una se realiza como una transacción, lo que da como resultado una escritura en el disco. Una escritura en un disco tarda entre 10 y 50 ms en un disco giratorio normal ... Eso podría ser mejor si tiene un caché respaldado por batería en un controlador RAID o un SSD. Sin embargo, – Argeman

+0

¿Realmente quiere decir que una sola transacción en un servidor comodity tomará 10 - 50 milisegundos. No lo creo. Nadie puede aceptar eso. Tengo este rendimiento no en todos los servidores solo en algunos servidores. – Uday

Cuestiones relacionadas