Ayuda con índices compuestos
Publicado por Matias (1 intervención) el 02/02/2009 16:08:29
Hola gente, estoy trabajando sobre un base de datos mysql y tengo un problema de concepto para definir los índices de una tabla. La estructura de la tabla es la siguiente:
Tabla Ordenanzas:
- nro_ordenanza INT sin autoincremento (clave primaria)
- descripcion TEXT
- texto TEXT
- fecha_sancion INT
- vigente TINYINT(1) Indica si la ordenanza está en vigencia o no
- publicada TINYINT(1) Indica si la ordenanza ha sido publicada o no
... (otros campos q no vienen al caso)
Los índices que hasta ahora tengo son los siguientes:
- "PRIMARIO" sobre el campo "nro_ordenanza"
- "idx_texto" sobre el campo "texto", tipo FULLTEXT
Necesito definir los demás índices para acelerar la búsqueda. Uno de los problemas con los que me encontré fue el siguiente:
Un usuario que hace una búsqueda por número de ordenanza, que está vigente y ha sido publicada (siempre un usuario externo ve sólo las publicadas), es decir,
SELECT * FROM Ordenanzas WHERE nro_ordenanza=1000 AND vigente=1 AND publicada=1
necesitaría definir un índice compuesto que incluya las columnas "vigente", "publicada" y "nro_ordenanza"?
Que pasa si el usuario busca por número de ordenanza, publicada, pero sin importar si está vigente o no, es decir,
SELECT * FROM Ordenanzas WHERE nro_ordenanza=1000 AND publicada=1
necesito definir otro índice compuesto con "publicada" y "nro_ordenanza", sin incluir "vigente", o con el índice anterior es suficiente?
Desde ya muchas gracias.
Tabla Ordenanzas:
- nro_ordenanza INT sin autoincremento (clave primaria)
- descripcion TEXT
- texto TEXT
- fecha_sancion INT
- vigente TINYINT(1) Indica si la ordenanza está en vigencia o no
- publicada TINYINT(1) Indica si la ordenanza ha sido publicada o no
... (otros campos q no vienen al caso)
Los índices que hasta ahora tengo son los siguientes:
- "PRIMARIO" sobre el campo "nro_ordenanza"
- "idx_texto" sobre el campo "texto", tipo FULLTEXT
Necesito definir los demás índices para acelerar la búsqueda. Uno de los problemas con los que me encontré fue el siguiente:
Un usuario que hace una búsqueda por número de ordenanza, que está vigente y ha sido publicada (siempre un usuario externo ve sólo las publicadas), es decir,
SELECT * FROM Ordenanzas WHERE nro_ordenanza=1000 AND vigente=1 AND publicada=1
necesitaría definir un índice compuesto que incluya las columnas "vigente", "publicada" y "nro_ordenanza"?
Que pasa si el usuario busca por número de ordenanza, publicada, pero sin importar si está vigente o no, es decir,
SELECT * FROM Ordenanzas WHERE nro_ordenanza=1000 AND publicada=1
necesito definir otro índice compuesto con "publicada" y "nro_ordenanza", sin incluir "vigente", o con el índice anterior es suficiente?
Desde ya muchas gracias.
Valora esta pregunta


0