Foros del Web » Programando para Internet » PHP »

PHP OO Lectura de base de datos condicionada

Estas en el tema de Lectura de base de datos condicionada en el foro de PHP en Foros del Web. Hola amigos, les escribo para hacerles una consulta sobre cuando serían los recursos utilizados por una base de datos, el problema es el siguiente, tengo ...
  #1 (permalink)  
Antiguo 08/07/2012, 13:27
Avatar de yubertvikel
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: Venezuela
Mensajes: 928
Antigüedad: 14 años, 10 meses
Puntos: 111
Lectura de base de datos condicionada

Hola amigos, les escribo para hacerles una consulta sobre cuando serían los recursos utilizados por una base de datos, el problema es el siguiente, tengo tiempo trabajando con un hosting y llevaba un registro de seguimiento de las visitas, en el mismo se han generado 2516728 registros durante un período de tiempo y al hacer lectura de un registro para una determinada url en un determinado día, según la empresa de hosting sus servidores están leyendo todos los registros.

El código de lectura está condicionado, por lo que no entiendo porqué dice que el servidor debe recorrer toda la base de datos. El mismo es el siguiente:

select * from seguimiento where dia='dia' && mes='mes' && ano='ano' && ulbus='cabeceradeorigen' && url='$urldemiweb' && ip='ipdelvisitante'

según este registro está generando el recorrido de toda la base de datos, ¿es eso cierto? pues según el hosting dice que eso puede estar sobrecargando su sistema.
__________________
Buscas posicionamiento en Google con Linneo.net encuentras soluciones SEO, SEM y de Marketing para empresas en Santiago
  #2 (permalink)  
Antiguo 08/07/2012, 13:39
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Lectura de base de datos condicionada

Sí la tabla en cuestión no esta debidamente indexada eso provoca una lectura completa de todos los registros, y más aún cuando se buscan cadenas de texto, dependiendo del motor de base de datos se pueden aplicar esquemas de búsqueda e indexación fulltext, que optimizan dicho proceso, sí no con indexar debidamente cada campo se mejora el rendimiento ya que el motor de base de datos puede acceder más rápido al bloque en cuestión y omitir todos los registros.

Realmente este tema ni compete a PHP, deberías reportarlo para que lo muevan al foro de bases de datos general o al de la base de datos que uses.

Ten en cuenta de que cuando apliques los índices puede llegar a tardar mucho debido a la cantidad de registros que tienes, puede ser un proceso largo, cero que lo recomendable es que crees una tabla vacía con la misma estructura, apliques los índices y realices un insert into, de esa forma se indexaran al llegar a la nueva tabla, de igual forma puede tardar un poco.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 08/07/2012 a las 13:46
  #3 (permalink)  
Antiguo 08/07/2012, 13:47
Avatar de yubertvikel
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: Venezuela
Mensajes: 928
Antigüedad: 14 años, 10 meses
Puntos: 111
Respuesta: Lectura de base de datos condicionada

La base de datos es en mysql, he aplicado un primary key al id, hay que aplicarle también a los demás campos? la lectura pocas veces se hace por el id, es más se busca más en el contenido y las categorías para encontrar resultados
__________________
Buscas posicionamiento en Google con Linneo.net encuentras soluciones SEO, SEM y de Marketing para empresas en Santiago
  #4 (permalink)  
Antiguo 08/07/2012, 13:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Lectura de base de datos condicionada

La PK es solo un tipo de índice, no el único tipo que puede tener, puedes aplicar más índices a una tabla, hasta índices por 2 o más campos, la PK es solo una y puede también ser de 2 o más campos.

sí sólo tiene una PK no quiere decir que lo demás se indexara, debe de aplicar un índice a cada campo que quiera indexar, no es algo automático

Consulte sobre esto en teoría de bases de datos, saludos
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 08/07/2012, 14:06
Avatar de yubertvikel
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: Venezuela
Mensajes: 928
Antigüedad: 14 años, 10 meses
Puntos: 111
Respuesta: Lectura de base de datos condicionada

Ok, ya entiendo, otra pregunta y disculpa si molesto pero estuve leyendo un poco conseguí que mysql puede cerar índices mediante el comando CREATE INDEX, esto se puede realizar directamente en php antes de hacer el llamado con el select, o bien debe hacerse en la cónsola cómo una configuración permanente?

Edito: Los indices se configuran al crear la tabla, ya entiendo, gracias por tu respuesta. Saludos y no me había fijado, paisano es bueno ver a gente de mi tierra por estos lados. mucho éxito
__________________
Buscas posicionamiento en Google con Linneo.net encuentras soluciones SEO, SEM y de Marketing para empresas en Santiago

Última edición por yubertvikel; 08/07/2012 a las 14:35

Etiquetas: hosting, mysql, select, sobrecarga
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 03:24.