Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

cachear consultas?

Estas en el tema de cachear consultas? en el foro de Mysql en Foros del Web. Hola a todos... tengo consultas que se ejecutan muchisimas veces al dia pero el resultado es el mismo!! SELECT nombre FROM usuarios WHERE id = ...
  #1 (permalink)  
Antiguo 23/12/2008, 18:55
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años
Puntos: 1
cachear consultas?

Hola a todos...
tengo consultas que se ejecutan muchisimas veces al dia pero el resultado es el mismo!! SELECT nombre FROM usuarios WHERE id = 1
entonces.. porqué no cachearlas?

ahi viene la pregunta...
ya tengo configurada la opcion en el mysql
query_cache_limit = 1048576
query_cache_size = 12M
query_cache_type = 1

pero... tengo que especificar cual query quiero cachear?
nada massss saludos navideños!!!
__________________
On error no hago nada porque deje de fumar...
  #2 (permalink)  
Antiguo 24/12/2008, 05:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: cachear consultas?

dieguicho

No necesariamente, pero sí puedes hacerlo si así lo deseas:

Esto está sacado del manual de MySQL:
Cita:
Si el tamaño de la caché de consultas es mayor que 0, la variable query_cache_type influye en su funcionamiento. Esta variable puede tener los siguientes valores:
Un valor de 0 o OFF evita cachear o recibir valores cacheados.
Un valor de 1 o ON permite el cacheo excepto para aquellos comandos que empiecen con SELECT SQL_NO_CACHE.
Un valor de 2 o DEMAND provoca el cacheo de sólo los comandos que empiecen con SELECT SQL_CACHE.


Si tú quieres que cachee todas tus consultas, le dejas el query_cache_type en 1, te cacheará todas las consultas excepto aquellas que comiences con SELECT SQL_NO_CACHE

Pero si quieres hacerlo a demanda, eliges el tipo 2 y añades SELECT SQL_CACHE delante de al consulta que quieres que te cachee.
Por tanto, la decisión es tuya. Echa un vistazo a la información del manual si no lo has hecho ya.
http://dev.mysql.com/doc/refman/5.0/es/query-cache.html

Saludos navideños
  #3 (permalink)  
Antiguo 30/12/2008, 22:07
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años
Puntos: 1
Respuesta: cachear consultas?

jurena, muchas gracias por tu explicacion (acabo de verla)
estoy pensando en implementar
query_cache_type = 2 para cachear SOLAMENTE las consultas que yo crea que deben ser cacheadas..
ahora bien... cuales debo cachear?

en que casos una consulta debe ser cacheada o no?
me parece que SELECT * FROM users LIMIT 0,10 deberia de ser cacheada porque siempre devuelve lo mismo.
en cambio SELECT * FROM comentarios ORDER BY id DESC no deberia de ser cacheada porque los comentarios se agregan constantemente.... estoy en lo cierto?

muchas gracias y feliz nuevo año!!!
__________________
On error no hago nada porque deje de fumar...
  #4 (permalink)  
Antiguo 31/12/2008, 02:19
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: cachear consultas?

Sí, pero no te preocupes, pues el programa cuando detecta cambio en la tabla, no hace el cacheado de consultas que tengan que ver con esa tabla. Puedes poner que las cachee en tanto no se producen cambios; eso dependerá de si entras muchas veces a hacer esa consulta.

Ah, y Feliz Año también para ti y para todos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:53.