Estoy trabajando en mi primera base de datos PostGIS y tenía la esperanza de encontrar algunas mejoras de rendimiento para vivir de representación.
Estoy de representación en un mapa directamente desde un PostGIS (9.1, 2.0) db que contiene una importación de datos de OSM (utilizando imposm3). Lo que es más importante, mis caminos de mesa es de alrededor de 30 GB y es la representación de un poco más lento de lo que me gustaría. En el futuro, voy a ser el uso generalizado de las alternativas para el detallado y completo caminos de mesa en los más altos niveles de zoom, pero por ahora sólo tengo que renderizar en razonablemente bajos niveles de zoom. Ya he tomado nota de algunos de PostGIS específicos de sugerencias de optimización y estos han hecho un buen impacto en el rendimiento.
Mi pregunta es si sería factible y vale la pena para reorganizar las entidades de que en mis caminos de mesa son almacenados en el disco. Por ejemplo, me imagino que si estoy en la consulta de un barrio-tamaño de área y el cerrado de las entidades se encuentran en el mismo disco físico de la página, el rendimiento sería mucho mejor que si se les ordenó basado en OSM presentación de la orden (que me temo que son ahora). Me pregunto si hay alguna de las utilidades o sugerido medio de la reordenación de las entidades en el disco.
Alternativamente, podría tal vez se benefician de la creación de nuevas tablas más pequeñas espacialmente separado de los más grandes, de 30 gb de mesa?
Gracias!
Editar:
La mitad de la terquedad y la mitad por curiosidad, me fui por delante y corrió CLUSTER table ON hash_index
y este terminó por hacer mi tabla de rendimiento ligeramente peor. Después de hacer un poco de búsqueda y aprendizaje, llegué a la conclusión de que la primera cosa que uno debe hacer cada vez es EXPLAIN query
. Terminó de que hubo algún tipo de barbaridades con los tipos y mis consultas, ni siquiera utilizando el índice.
Voy a agregar esto sobre todo como un PSA a alguien que podría viento hasta aquí en busca de la agrupación solución: compruebe que sus índices son correctos y ejecutar explain
para asegurarse de que está siendo utilizado.