Yo quiero adentrarme en este tema, lo conozco pero no suficiente. Yo les pido ayuda de donde puedo encontrar documentación o me recomienden algún libro que aborde el tema de los indices para implementarlos de forma correcta y optima.
2009/5/19 Silvio Quadri <[email protected]> > El día 19 de mayo de 2009 7:08, BhEaN <[email protected]> escribió: > > Antes de nada, muchísimas gracias a todos por vuestras respuestas.... > > > > Os contesto debajo de cada parrafo: > >> > >> rtree ya no existe. Fue reemplazado por GiST ("generalized search > >> tree"), el cual es un sistema de indexamiento para tipos complicados -- > >> por ej. se usa para indexar tipos geométricos y también para los índices > >> de búsqueda en texto, entre muchas otras cosas. > >> > > > > Eso es lo que necesito, un índice de búsqueda en texto... > >> > >> El otro sistema de indexamiento extravagante es GIN; es un índice > >> invertido. También se usa para búsqueda en texto (es más rápido en > >> búsquedas que GiST, pero mucho más lento para agregar nuevos valores). > >> Se puede usar para otras cosas también obviamente. > >> > > > > Eso suena mejor que GiST, puesto que la relación de inserciones/lecturas > > será muy baja... se haran muchísimas más consultas que inserciones, por > lo > > que quizás me interese más éste tipo de indice... > >> > >> Hash es un tipo de índice que en Postgres no es recomendable por el > >> momento, así que no lo uses porque tiene varios problemas. > >> > >> Así que tu única alternativa es el btree. Dado que no puedes almacenar > >> más de 2000 y pico caracteres, vas a tener que buscar mecanismos > >> alternativos. Si quieres indexar campos grandes de texto, ¿quizás lo > que > >> necesitas en realidad es usar el sistema de búsqueda en texto? Te > >> podemos dar consejos más específicos si nos dices exactamente de qué > >> naturaleza son los datos y cómo serán las consultas. > >> > >> > > > > Ok... siento no haber sido más explícito... lo que tengo exactamente es > una > > tabla con muchos anuncios clasificados (los típicos anuncios de "vendo > > blablabla", o "compro blablablablabla"... hay varios millones de éstos > > anuncios.... y lo que necesito es optimizar todo lo posible las búsquedas > en > > ella, ya que debo permitir búsquedas de palabras en el texto y título de > > dichos anuncios... es decir, búsquedas del tipo LIKE '%blablabla%' (lo > cual > > tiene pinta de que va a ser horrible para la BBDD, pero es lo que hay, > > jejejee...). No dispongo aún de los datos "reales", por lo que no puedo > > hacer pruebas de rendimiento con un índice u otro, sino... simplemente > > "probaría" a hacer búsquedas con un tipo de índice... luego con otro... y > > así hasta dar con el más optimo, pero no los tengo aún, así que tengo que > > preparar el tema un poco "a ciegas". > > > Like '%blablabla%' no va a usar un índice tradicional. Revisá la > documentación acerca de "full text search" > (http://www.postgresql.org/docs/8.3/static/textsearch.html) que te va > a servir de ayuda. > Saludos! > > > Silvio > > -- > Silvio Quadri > -- > TIP 8: explain analyze es tu amigo > -- Luis Fernando Curiel Cabrera - Professional ABACO DE BOLITAS Developer. - Certified ABACO DE BOLITAS Programmer.
