Blogs Media: CSS Mania | VivirLatino | Sentido Web | Apps Mania

Publicidad

Vie05May2006

Simples optimizaciones para tus aplicaciones MySQL/PHP

17:30 H (CET)| Temas: MYSQL · PHP · Trucos

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

Relacionados

Feedback (4) » Formulario

1. Luciano A. Ferrer ~ Sábado, 06 May 2006 | 07:01H:

mmmmmmm... no he entendido la parte de "No pongas en datos que vayan a modificar rara vez, utiliza ficheros de propiedades."

Está mal formulada la frase?

(es así que luego de mandar el formulario de comentario aparezco en otro formulario de comentarios solo y tengo que volver a escribir de nuevo? o me pasa a mí nomás?)

2. Luis ~ Sábado, 06 May 2006 | 14:18H:

Realmente si puede estar mal redactada, me falta un "se": "datos que SE vayan a modificar", las prisas, jeje.

Esto se refiere a usar una tabla para guardar variables de configuración del tipo: path_imagenes, nivel_trazas, url_otro_servidor, ... Estas variables que usamos para configurar nuestra aplicación es raro que se vayan a modificar con frecuencia. Lo que nos dicen es que en vez de usar una tabla en la base de datos, usemos un fichero de propiedades (ej: aplicacion.config)

¿Lo del formulario puede ser que le hayas pulsado sin querer a Revisar?

3. Pablo ~ Sábado, 10 Jun 2006 | 19:40H:

Otra tip sería el uso de la constantes para valores que no varían en toda la ejecución del script (tal es el caso para valores que tengan que ver con la configuración del script como base de datos, tablas, path's, url's, etc.) en vez de variables.
Las constantes consumen menos de un 50% de la memoria que usa una variable. Hice una comparativa entre el uso de variables, constantes y array estos días y publiqué los resultados en mi blog por si a alguien le sirve esto.

4. gafeman ~ Lunes, 25 Jun 2007 | 11:50H:

hola luis,
este articulo me parece fantastico

gracias por publicarlo !!!

Conversación

Nombre:

Email:

(no aparecerá)

URL:

(opcional)
¿Recordar datos?

↓ Comentarios (XHTML permitido)