¿Cómo utilizar la herramienta de prueba de estrés de rendimiento integrada de MySQL, mysqlslap?
# MySQL slap[opción]
Descripción detallada de los parámetros comunes [opción]:
- auto-generate-sql, -a sql, -a genera automáticamente tablas y datos de prueba, es decir, utiliza el script SQL generado por la herramienta mysqlslap para probar la presión de concurrencia.
-auto-generate-SQL-load-type = tipo El tipo de declaración de prueba. Indica si el entorno que se va a probar son operaciones de lectura, operaciones de escritura o una combinación de las dos. Los valores incluyen: lectura, escritura, escritura, actualización y mixto (predeterminado).
-auto-generate-SQL-add-auto-increment significa agregar automáticamente la columna auto_increment a la tabla generada. Es compatible con la versión 5.1.18.
-number-char-cols = n, -x n ¿Cuántas columnas de tipo de caracteres se incluyen en la tabla de prueba generada automáticamente? El valor predeterminado es 1.
-number-int-cols = n, -y n¿Cuántas columnas numéricas se incluyen en la tabla de prueba generada automáticamente? El valor predeterminado es 1.
-$ NÚMERO-de-consultas = n número total de consultas de prueba (número de clientes simultáneos × número de consultas por cliente)
- consulta=nombre, -q, -q Utilice scripts autodefinidos para ejecutar pruebas. Por ejemplo, puede llamar a procedimientos almacenados personalizados o declaraciones SQL para ejecutar pruebas.
- create-schema representa el nombre de la biblioteca de prueba y el modo de prueba definidos por el usuario. El esquema en MySQL también es una base de datos.
-commint = nCuántos DML enviar a la vez.
-compress, -c Si tanto el servidor como el cliente admiten la compresión, la transmisión de información se comprime.
- concurrency=N, -c n, -c N representa la cantidad de concurrencia, es decir, cuántos clientes se simulan para ejecutar select al mismo tiempo. Puede especificar varios valores, separados por comas o el valor especificado por el parámetro -delimiter. Por ejemplo: - Simultaneidad = 100, 200, 500.
-motor = nombre_motor, -e nombre_motor indica el motor que se va a probar. Puede haber varios motores, separados por separadores. Por ejemplo: motores = myisam, innodb, InnoDB.
- iterations=N, -i N, -i n El número de iteraciones de ejecución de la prueba representa cuántas veces se debe ejecutar la prueba en diferentes entornos simultáneos.
- only-print solo imprime la declaración de prueba sin ejecutarla.
-detach = nDesconectar y volver a conectar después de ejecutar n sentencias.
-debug-info, -t imprime información sobre la memoria y la CPU.
Descripción:
El proceso de prueba requiere generar una tabla de prueba e insertar datos de prueba. Este mysqlslap se puede generar automáticamente y se genera un esquema mysqlslap de forma predeterminada. Si ya existe, elimínelo primero. Puede utilizar -only-print para imprimir el proceso de prueba real. No habrá rastros en la base de datos una vez completada toda la prueba.
Ejemplos de varios parámetros de prueba (-p seguido de la contraseña de root para mysql):
Pruebas de un solo subproceso. Lo que hizo la prueba.
# MySQL slap-a-uroot-p 123456
Pruebas multiproceso. Utilice --concurrency para simular conexiones simultáneas.
# MySQL slap-a-c 100-u root-p 123456
Pruebas iterativas. Se utiliza para obtener un promedio mediante la realización de múltiples pruebas.
# MySQL slap-a-I 10-u root-p 123456
# mysqlslap -generar automáticamente-SQL-add-auto increment-a-u root-p 123456
# MySQL slap-a-auto-generate-SQL-load-type = read-u root-p 123456
# MySQL slap-a-auto-generate-secundario-indexes = 3-u root- p 123456
# MySQL slap-a-auto-generate-SQL-write-number = 1000-u root-p 123456
# MySQL slap-create-schema world-q " seleccione recuento (*) de la ciudad "-u root-p 123456
# MySQL slap-a-e innodb-ur oot-p 123456
# MySQL slap-a-number-of- query = 10-u root-p 123456
Prueba y compara el rendimiento de diferentes motores de almacenamiento al mismo tiempo:
# mysqlslap -a - concurrency=50, 100 - number of consultas 1000 - número de iteraciones =5 -engine=myisam,innodb-debug-info-ur oot-p 123456
Utilice 50 y 100 pruebas de ejecución simultáneas respectivamente, ejecutando un total de 1000 consultas:
# mysqlslap -a -concurrency=50, 100 -query number 1000-debug-info-ur oot-p 123456
50 y 100 concurrencias obtienen un punto de referencia respectivamente. Cuanto mayor sea la simultaneidad, más tiempo llevará ejecutar todas las consultas. Para mayor precisión, puede iterar la prueba varias veces:
# mysqlslap -a -concurrency=50,100 -number of queries 1000 -number of iterations=5-debug-info-u root-p 123456