2006 Comments Off
Simples optimizaciones para tus aplicaciones MySQL/PHP
Una serie de trucos que podemos utilizar para mejorar nuestras aplicaciones MySQL / PHP, traducido (lo mejor posible) de la fuente:
MySQL
- MySQL interpreta de derecha a izquierda, por lo que los limitadores más significativos los debes poner lo más a la derecha posible.
- Selecciona los campos que vayas a necesitar, no todos (*).
- No pongas en datos que se vayan a modificar rara vez, utiliza ficheros de propiedades.
- Usa índices para las columnas que aparezcan en el WHERE y en el ORDER BY.
- Los índices son buenos cuando la tabla se modifica con frecuencia, pero hace lentas las inserciones.
- Usa el comando EXPLAIN para analizar tus índices.
- Si solo quieres obtener una fila, usa LIMIT 1 así parará de buscar datos.
- Si usas $linea = mysql_fetch_array($resultado), hay dos modos de obtener los datos: $linea[n] y $linea['columna']. Si vas a acceder solo por el nombre de la columna, usa $linea = mysql_fetch_assoc($resultado), así no se creará el índice numérico.
- Algunas veces mysql_free_result() gasta mas memoria que la que salva, comprueba la diferencia con memory_get_usage().
- No hagas siempre la misma consulta en la BD, guarda los resultados.
- Usa NOT NULL siempre que puedas, agiliza la ejecución y ahorra un bit.
- Usa tipos de datos que se ajusten a las necesidades, por ejemplo, en vez de usar INT, que puede ser muy grande, usa MEDIUMINT o SMALLINT cuando sea posible.
- Usa valores por defecto, inserta solo cuando sean diferentes a estos, agilizarás las inserciones.
PHP
- Intenta agrupar bloques de código
es mas efectivo que<?php ... ... ... ?><?php ... ?> <?php ... ?> <?php ... ?> - No concatenes texto cuando no sea necesario
es más efectivo que"SELECT * FROM $tabla ORDER BY campo""SELECT * FROM ".$tabla." ORDER BY campo" - Utiliza la comilla simple (‘) en vez de la comilla doble (“) siempre que no vayas a usar variables dentro, la comilla doble hace que el intérprete analice lo que hay dentro de las comillas.
- La forma más rápida de concatenar texto es usando comillas simples.
- Cuando uses echo, separa los strings por comas mejor que con puntos, es más rápido. Esto solo funciona con echo.
- echo es más rápido que print.
- Indica el valor máximo para tus bucles for fuera del bucle en vez de dentro del bucle, porque si no, se evaluará la expresión en cada pasada del bucle
es más rápido que$max = 100/10; for($i=0; $i<$max; $i++){ ... }for($i=0; $i<100/10; $i++){ ... } - Libera variables siempre que puedas, sobre todo arrays pesados.
Simple Optimization for PHP and MySQL
Vía / Digg