Título: Recomendaciones para Optimizar INDEX Publicado por: Skeletron en 11 Enero 2011, 01:50 am Hola gente.
Resulta que me pasa lo siguiente: (Aclaro, que la base de datos no tiene muchos registros, pero espero que pronto tenga millones.. :) ) Tengo una tabla, donde guardo LOS ARTICULOS que tiene un USUARIO. En total, hay unos 25 articulos disponibles. O sea que un usuario no puede tener mas de 25 articulos. Puede tener 0, 1, 2, etc, hasta 25. La tabla tiene: id_articulo id_usuario Usuarios, supongamos que tengo 1.000.000 (jaja.. me rio de mi.. tengo 2 nomas.. pero bueno... quiero empezar haciendo las cosas bien desde el comienzo). La cuestion, es que SIEMPRE se va a buscar QUE ARTICULOS TIENE EL USUARIO: X. Aunqueeeeeee, muchas muchas veces se va a buscar si X usuario tiene X articulo. La consulta mas comun es: SELECT 1 FROM articulosdeusuarios WHERE id_usuario=123 Y una que aparecerá muchas veces tambien (pero menos que la anterior) es: SELECT 1 FROM articulosdeusuarios WHERE id_usuario=123 AND id_articulo=5 Como me recomiendan hacer los indices? Sé que importa mucho si hago 2 indices separados, o uno complejo de id_usuario y id_articulo. y supongo que es diferente poner usuario y articulo, que poner: articulo y usuario. Así que. estaría bueno resolver esta duda :D Yo me formulo en la cabeza esta pregunta: "Que le gustará mas al motor? que a la hora de realizar la busqueda, tenga que listar primero los articulos y luego buscar entre ellos el usuario X? o acomodar todo por X usuario y luego ver si tiene el articulo?" Yo pienso que: Si creo 2 indices, va a ocupar mucho espacio (o mucho mas de lo que podría ocupar con otro) Si creo el indice: id_articulo+id_usuario o al revez, habrá el mismo tiempo de procesamiento para buscarlo, y ocuparán menos que el que dije aca arriba. Pero no estoy seguro |