gafeman viciao2k3 logo viciao2k3
 
¿que estoy haciendo?   follow me
hasta que el sol no floje un poco, yo no me muevo de la cueva !
 
Suscribete →  
374  fans y una planta carnivora
 
Estás en: Viciao2k32007JunioViernes 22
0

mejorar rendimiento wordpress, reducir el uso de querys

Tag: Wordpress    Por: gafeman    Lecturas: 616   

antes de todo explico esto de la query:
consiste en una cadena de consulta, normalmente se utilizan para: insertar, actualizar o editar valores de la base de datos.

que ganamos reduciendo las querys?

  1. estabilidad (a veces si el servidor no estra preparado para recibir tantas querys, esta se puede colgar y devolver warnings (errores)
    eso a corto plazo no se nota, pero a largo plazo cuantas mas visitas recibas mas probabilidades tienes que la base de datos se cuelgue (te lo digo por experiencia propia)
  2. ejecucion mas rapida de la web

curiosidades de wordpress:
en wordpress hay funciones en las que tu introduces uno o varios parametros, estas te hacen la query y devuelven el resultado, pero pienso que en algunos casos podriamos evitar usarlas

ejemplo:
el siguiente codigo es un fragmento reducido de un plugin para obtener los enlaces relacionados de un post

lo que hace el siguiente ejemplo es obtener el ID, titulo y luego recorrer cada uno de los resultados para obtener su permalink (enlace permanente)

PHP:
  1. $sql = "SELECT ID, post_title FROM $wpdb->posts";
  2. $results = $wpdb->get_results($sql);
  3. if ($results) {
  4. foreach ($results as $result) {
  5. $permalink = get_permalink($result->ID);
  6. }
  7. }

por hacer el $wpdb->get_results($sql) ya hacemos una query y luego para cada get_permalink($result->ID) se suma 1 query.
pongamos un caso, hay un total de 5 resultados:
1 query para obtener las noticias + 5 querys para obtener el permalink de cada una de estas, total 6 querys

estas 5 ulitmas querys se podrian haber evitado, haciendo lo siguiente:

PHP:
  1. $sql = "SELECT guid, ID, post_title FROM $wpdb->posts";
  2. $results = $wpdb->get_results($sql);
  3. if ($results) {
  4. foreach ($results as $result) {
  5. $permalink = $result->guid;
  6. }
  7. }

nota: guid es un campo de la tabla wp_posts, donde se almacena la direccion del permlink

eso si, en este caso podemos hacerlo de esta forma ya que el campo guid esta en la misma tabla que los demas campos: ID y post_title

supongo que los programadores de wordpress lo hicieron de esta forma por si en un futuro el nombre de los campos de las tablas cambian, de esta manera solo tendrian que modificar las funciones

  •  0  comentarios   —   617  visitas
  •  0  pings   —   0  trackbacks
 
Pings
  1. No hay pingbacks

Trackbacks
  1. No hay trackbacks

¡Nadie ha comentado! ¡Puedes ser el primero! (o no...)

0-0

Código de conducta


Cualquier comentario / usuario que no cumpla uno de los siguientes requisitos,
sera borrado sin previo aviso:
  1. Ser persona
  2. No insultar (A eso se le llama Trolear)
  3. No escribir el texto en mayusculas (Es lo mismo que gritar)
  4. No Spamear (ej. hablar de lo que comiste ayer...)
  5. Evitar comentarios del tipo soy primero, soy segundo, hijo de puta...
  6. Escribir el comentario en castellano
  7. Saber el día de la semana que naciste
  8. No deshonrar la ortografia del editor

La sole

¡Participa en la discusión!




Tu Comentario:

background by eboy