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

duda con max en campo indexado

Estas en el tema de duda con max en campo indexado en el foro de Mysql en Foros del Web. Hola a todos , viendo un explain de un select Código PHP: SELECT             razon_id              MAX ( razon_date_created )               FROM razones    GROUP BY                razon_id  el campo rows muestra ...
  #1 (permalink)  
Antiguo 23/11/2010, 07:25
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
duda con max en campo indexado

Hola a todos ,
viendo un explain de un select
Código PHP:
SELECT
            razon_id 
            MAX
(razon_date_created
            
FROM razones    GROUP BY
               razon_id 
el campo rows muestra el total de columnas de la tabla, aunque los campos de la consulta estan indexados,
debe acceder a todos los campos para hacer el Max?
__________________
I am Doyle please insert code.
  #2 (permalink)  
Antiguo 23/11/2010, 07:31
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: duda con max en campo indexado

Mande?

Eso da el valor maximo de razon_date_created para cada razon_id.

Quim
  #3 (permalink)  
Antiguo 23/11/2010, 08:20
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
Respuesta: duda con max en campo indexado

Si pero el explain asegura que se consulto a todos los registros de la tabla, sin usar los indices...
__________________
I am Doyle please insert code.
  #4 (permalink)  
Antiguo 23/11/2010, 08:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: duda con max en campo indexado

Eso lo hace por la presencia de razon_id, que como esPK tiene prioridad en los índices. MySQL descarta el segundo índice en la lectura, y como consecuencia para obtener el mayor del segundo campo debe hacer un barrido completo de la tabla.
Habria que probar usando FORCE INDEX.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/11/2010, 10:14
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
Respuesta: duda con max en campo indexado

perdon, le erre en el campo, no es razon_id, sino empresa_id, la cual no es primary de la tabla, (es FK)
Código PHP:
SELECT
     empresa_id 
     MAX
(razon_date_created
     
FROM razones   
     GROUP BY empresa_id 
Intento eso de force index, nunca lo use espero la sintaxis sea la correcta,
Código PHP:
FROM razones
FORCE INDEX 
(razon_date_createdempresa_id
GROUP BY 
Pero el explain sigue mostrando en la columna rows el total de registros de la tabla =(
__________________
I am Doyle please insert code.

Última edición por doylelives; 23/11/2010 a las 10:19

Etiquetas: indexado, max, campos
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 00:30.