| |

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
    <?php
    ...
    ...
    ...
    ?>

    es mas efectivo que

    <?php
    ...
    ?>
    <?php
    ...
    ?>
    <?php
    ...
    ?>
  • No concatenes texto cuando no sea necesario
    "SELECT * FROM $tabla ORDER BY campo"

    es más efectivo que

    "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
    $max = 100/10;
    for($i=0; $i<$max; $i++){
    ...
    }

    es más rápido que

    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