[+/-]
EXPLAIN
(Obtener información acerca de
un SELECT
)SELECT
WHERE
por parte de
MySQLIS NULL
DISTINCT
LEFT JOIN
y RIGHT
JOIN
ORDER BY
GROUP BY
LIMIT
INSERT
UPDATE
DELETE
Ante todo, un factor afecta a todas las sentencias: cuanto más compleja es la configuración de los permisos, mayor es la carga.
Usar permisos simples cuando se ejecuta una sentencia
GRANT
permite a MySQL reducir la carga en la
verificación de permisos cuando los clientes ejecutan sentencias.
Por ejemplo, si no se concede (grant) ningún privilegio a nivel
de tabla o de columna, el servidor no necesita verificar nunca el
contenido de las tablas tables_priv
y
columns_priv
. Similarmente, si no se establece
límites de recursos sobre ninguna cuenta, el servidor no tiene
que realizar conteos de recursos. Cuando se tiene un alto volumen
de consultas, puede valer la pena utilizar una estructura de
permisos simplificada para reducir la carga de verificación de
los mismos.
Si el problema es con una expresión o función específica de
MySQL, se puede utilizar la función
BENCHMARK()
en el cliente
mysql para realizar una prueba de velocidad. Su
sintaxis es
BENCHMARK(
.
El valor devuelto siempre es cero, pero mysql
muestra cuánto tardó en ejecutarse la sentencia. Por ejemplo:
número_iteraciones
,expresion
)
mysql> SELECT BENCHMARK(1000000,1+1); +------------------------+ | BENCHMARK(1000000,1+1) | +------------------------+ | 0 | +------------------------+ 1 row in set (0.32 sec)
Este resultado se obtuvo en un sistema Pentium II 400MHz. Muestra que MySQL puede ejecutar 1,000,000 de expresiones simples de suma en 0.32 segundo sobre ese sistema.
Todas las funciones de MySQL deberían estar altamente
optimizadas, pero pueden existir algunas excepciones.
BENCHMARK()
es una excelente herramienta para
determinar si alguna función es un problema en una consulta.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.