Foros del Web » Programando para Internet » PHP »

Pasando una tabla a memoria

Estas en el tema de Pasando una tabla a memoria en el foro de PHP en Foros del Web. Estoy trabajando con un campo de texto, el cual dispara un ajax luego de teclear 5 letras. Hace una búsqueda a mi base Oracle y ...
  #1 (permalink)  
Antiguo 05/12/2013, 09:12
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Pasando una tabla a memoria

Estoy trabajando con un campo de texto, el cual dispara un ajax luego de teclear
5 letras. Hace una búsqueda a mi base Oracle y devuelve un resultado el cual muestro con jquery autocomplete. Hasta aquí todo casi bien, y digo casi porque el problema se presenta con la consulta, ya que la tabla en cual se realiza es bastante grande, y la consulta ejecuta likes y sub consultas no muy ligeras..

Existe alguna tecnología que me permita realizar esta búsqueda mas rapidamente? Por ejemplo volcando los datos de la tabla en memoria y buscando directamente ahí? Leí que con apache Solr resolvería mi problema, pero no parece que se justifique la instalación para usar solamente en este formulario.

¿Alguien conoce alguna tecnologia alternativa para que pueda investigarla?

Saludos
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #2 (permalink)  
Antiguo 05/12/2013, 16:26
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: Pasando una tabla a memoria

Al procesar el resource ya lo estas guardando en memoria, lo que puedes hacer es guardar el resultado en una variable de session, y despues haces una busqueda recursiva sobre la.variable de session, pero no sabria decirte si ea mas optimo que hacer la consulta a la bd
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #3 (permalink)  
Antiguo 05/12/2013, 19:35
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Pasando una tabla a memoria

<saludos>
Pues suena a que se tienen que mejorar las consultas.
En el caso de usar los like, obviamente esto va a fatigar a la bd
y más si la tabla o tablas involucradas son de bastante data

Así que lo primero a revisar es, en verdad no se pueden mejorar las consultas?
Aunque sea usando LIMITES?
Luego sería interesante revisar si ya se tienen todos los indices
sobre los campos de búsqueda que puedan ayudar a la consulta en sí

Y en cuanto a las subconsultas, son demasiadas? O no hay modo de generar una consulta madre, y a partir de esta y sus resultados, generar las otras consultas?
Y pues igualmente, volvemos al tema de límites

Revisa y nos cuentas
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #4 (permalink)  
Antiguo 06/12/2013, 11:52
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Pasando una tabla a memoria

Cita:
Iniciado por mortiprogramador Ver Mensaje
<saludos>
Pues suena a que se tienen que mejorar las consultas.
En el caso de usar los like, obviamente esto va a fatigar a la bd
y más si la tabla o tablas involucradas son de bastante data

Así que lo primero a revisar es, en verdad no se pueden mejorar las consultas?
Aunque sea usando LIMITES?
Luego sería interesante revisar si ya se tienen todos los indices
sobre los campos de búsqueda que puedan ayudar a la consulta en sí

Y en cuanto a las subconsultas, son demasiadas? O no hay modo de generar una consulta madre, y a partir de esta y sus resultados, generar las otras consultas?
Y pues igualmente, volvemos al tema de límites

Revisa y nos cuentas
</saludos>
La consulta esta optimizada para la búsqueda que realizo.
Ya fueron creados los indices necesarios y tuvo modificaciones por dos DBA de oracle.

Guardar los datos en session no es una posibilidad, primeramente porque serian sessiones enormes, y después de todas maneras estoy realizando minimamente una consulta por usuario.

Voy a correr un cron diario, que genere una clave de mem-cache por cada usuario, con los registros pertinentes, y luego hago el autocomplete sobre este subconjunto, creo que se acerca mas a lo que estoy buscando
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives

Etiquetas: formulario, memoria, pasando, tabla
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 22:55.