Buenas!
tengo una duda respecto a como usar indices en mi base de datos, y me gustaria escuchar opiniones y consejos de gente que sepa sobre el tema. Os comento.
Tengo las siguientes tablas:
Tabla: Peticion
Columnas:
* Id
* Tipo_peticion_id
* Nombre_usuario
* Ciudad_usuario
* Fecha_peticion
Tabla: Contenido
* Id
* Peticion_id
* Sub_id1
* Sub_id2
* Texto
Pongo un ejemplo de como se verian los datos:
Código:
---Peticion---
--id-- --tipo peticion id-- --nombre usuario-- --ciudad usuario-- --fecha peticion--
12 100 Javier Sevilla 18-12-2010
13 100 Marcos Madrid 27-01-2011
---Contenido---
--id-- --peticion id-- --subid1-- --subid2-- --texto--
40 12 1 1 blabla
41 13 1 1 test
Bien, pues teniendo 8000 registros en cada tabla (uno para el usuario y la fecha de peticion, y el otro en la otra tabla para el contenido de esta), al hacer el siguiente query :
select peticion.id, contenido.texto from peticion, contenido where peticion.id=contenido.peticion_id and peticion.tipo_peticion_id=100 and contenido.subid1=1 and contenido.subid2=1 order by peticion.id desc
me tarda unos 40 segundos en darme el resultado. Se que son muchos registros, pero querria que me tardara algo menos si es posible, asi que me puse a investigar y encontre que mediante indices se puede reducir el tiempo de obtencion de los datos. A esto, ahi va mi pregunta. Donde seria mas correcto poner los indices? En los ids? En las columnas que se usan en las condiciones para obtener la query? (tipo peticion id, subid1, subid2)
Si alguien domina sobre el tema le estaria muy agradecido que diera su opinion al respecto : )
Gracias de antemano!