<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://www.postgis-python.com/</loc><lastmod>2026-07-19T16:55:25.521Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/</loc><lastmod>2026-08-05T21:26:17.077Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/choosing-a-spatial-index-type/</loc><lastmod>2026-08-05T21:27:43.614Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/choosing-a-spatial-index-type/brin-indexes-for-append-only-spatial-tables/</loc><lastmod>2026-08-05T21:29:24.695Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/composite-spatial-indexes/covering-indexes-with-include-for-spatial-queries/</loc><lastmod>2026-08-05T21:31:13.478Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/composite-spatial-indexes/composite-indexes-for-geometry-and-timestamp-columns/</loc><lastmod>2026-08-05T21:32:21.570Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/composite-spatial-indexes/</loc><lastmod>2026-08-05T21:32:47.334Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/index-only-scan-strategies/</loc><lastmod>2026-08-05T21:35:26.912Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/index-only-scan-strategies/leveraging-index-only-scans-for-point-data/</loc><lastmod>2026-08-05T21:36:10.191Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/partial-gist-indexes/</loc><lastmod>2026-08-05T21:38:52.008Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/partial-gist-indexes/creating-partial-indexes-for-active-map-regions/</loc><lastmod>2026-08-05T21:39:39.930Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/query-plan-analysis-with-explain/</loc><lastmod>2026-08-05T21:40:24.116Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/query-plan-analysis-with-explain/forcing-index-scans-when-the-planner-chooses-seq-scan/</loc><lastmod>2026-08-05T21:41:23.272Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/query-plan-analysis-with-explain/reading-explain-analyze-output-for-spatial-joins/</loc><lastmod>2026-08-05T21:42:01.737Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/</loc><lastmod>2026-08-05T21:42:53.675Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/bounding-box-filtering/optimizing-bounding-box-queries-with-operator/</loc><lastmod>2026-08-05T21:44:08.726Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/bounding-box-filtering/tile-based-bounding-box-queries-for-web-maps/</loc><lastmod>2026-08-05T21:45:13.251Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/knn-nearest-neighbor-queries/</loc><lastmod>2026-08-05T21:46:02.009Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/knn-nearest-neighbor-queries/implementing-knn-search-with-operator/</loc><lastmod>2026-08-05T21:46:42.121Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/knn-nearest-neighbor-queries/keyset-pagination-for-knn-result-sets/</loc><lastmod>2026-08-05T21:47:57.008Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/spatial-joins/batch-processing-spatial-joins-in-python/</loc><lastmod>2026-08-05T21:49:16.851Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/spatial-joins/point-in-polygon-joins-at-scale/</loc><lastmod>2026-08-05T21:50:18.782Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/st_dwithin-radius-searches/st_dwithin-vs-st_distance-for-proximity-filtering/</loc><lastmod>2026-08-05T21:51:45.442Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/st_dwithin-radius-searches/tuning-st_dwithin-for-high-traffic-apis/</loc><lastmod>2026-08-05T21:52:28.633Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/</loc><lastmod>2026-08-05T21:53:20.186Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/autovacuum-tuning-for-geometry-tables/</loc><lastmod>2026-08-05T21:54:02.879Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/autovacuum-tuning-for-geometry-tables/automating-vacuum-analyze-for-geometry-heavy-tables/</loc><lastmod>2026-08-05T21:55:32.337Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/detecting-gist-index-bloat/</loc><lastmod>2026-08-05T21:56:12.284Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/detecting-gist-index-bloat/measuring-gist-index-bloat-with-pgstattuple/</loc><lastmod>2026-08-05T21:57:07.782Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/pg-stat-statements-for-spatial-workloads/</loc><lastmod>2026-08-05T21:57:44.137Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/pg-stat-statements-for-spatial-workloads/finding-slow-st-function-calls-with-pg-stat-statements/</loc><lastmod>2026-08-05T21:58:44.542Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-schema-migrations-and-evolution/</loc><lastmod>2026-08-05T21:59:24.091Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-schema-migrations-and-evolution/adding-geometry-columns-to-live-tables/</loc><lastmod>2026-08-05T22:00:03.802Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-schema-migrations-and-evolution/adding-geometry-columns-to-live-tables/alter-table-add-geometry-column-without-locking/</loc><lastmod>2026-08-05T22:01:06.985Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-schema-migrations-and-evolution/backfilling-and-zero-downtime-migrations/</loc><lastmod>2026-08-05T22:01:57.393Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-schema-migrations-and-evolution/backfilling-and-zero-downtime-migrations/backfilling-geometry-from-latitude-longitude-columns/</loc><lastmod>2026-08-05T22:03:28.056Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-schema-migrations-and-evolution/concurrent-index-builds/</loc><lastmod>2026-08-05T22:04:09.333Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-schema-migrations-and-evolution/concurrent-index-builds/create-index-concurrently-on-large-spatial-tables/</loc><lastmod>2026-08-05T22:04:58.846Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-schema-migrations-and-evolution/in-place-srid-reprojection/</loc><lastmod>2026-08-05T22:05:39.451Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-schema-migrations-and-evolution/in-place-srid-reprojection/batch-st_transform-reprojection-in-python/</loc><lastmod>2026-08-05T22:06:38.723Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/choosing-a-postgis-driver/</loc><lastmod>2026-08-05T22:08:13.415Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/choosing-a-postgis-driver/migrating-spatial-code-from-psycopg2-to-psycopg3/</loc><lastmod>2026-08-05T22:09:28.676Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/hybrid-properties-for-geometry/</loc><lastmod>2026-08-05T22:10:04.558Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/hybrid-properties-for-geometry/spatial-aggregations-with-hybrid-expressions/</loc><lastmod>2026-08-05T22:10:56.101Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/model-mapping-with-geoalchemy2/</loc><lastmod>2026-08-05T22:11:39.843Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/model-mapping-with-geoalchemy2/configuring-geoalchemy2-geometry-columns-in-fastapi/</loc><lastmod>2026-08-05T22:12:19.557Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/session-management-for-spatial-data/</loc><lastmod>2026-08-05T22:12:57.114Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/session-management-for-spatial-data/async-streaming-of-large-geometry-result-sets/</loc><lastmod>2026-08-05T22:13:56.045Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/session-management-for-spatial-data/handling-session-timeouts-during-bulk-spatial-inserts/</loc><lastmod>2026-08-05T22:14:33.669Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/type-coercion-and-serialization/geoalchemy2-vs-raw-wkb-when-to-use-each/</loc><lastmod>2026-08-05T22:16:08.112Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/geometry-validity-and-repair/detecting-invalid-geometries-at-scale/</loc><lastmod>2026-08-05T22:21:38.807Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/bounding-box-filtering/</loc><lastmod>2026-08-05T22:40:27.953Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/spatial-joins/</loc><lastmod>2026-08-05T22:40:36.215Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/st_dwithin-radius-searches/</loc><lastmod>2026-08-05T22:40:49.298Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/</loc><lastmod>2026-08-05T22:41:00.293Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/type-coercion-and-serialization/</loc><lastmod>2026-08-05T22:41:17.075Z</lastmod></url><url><loc>https://www.postgis-python.com/tools/</loc><lastmod>2026-08-05T22:41:28.602Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/geometry-validity-and-repair/st-makevalid-strategies-for-polygon-repair/</loc><lastmod>2026-08-05T22:42:05.156Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/geometry-validity-and-repair/enforcing-validity-with-check-constraints/</loc><lastmod>2026-08-05T22:42:17.505Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/geometry-validity-and-repair/repairing-geometry-during-python-imports/</loc><lastmod>2026-08-05T22:42:30.951Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/spatial-table-partitioning/partitioning-spatial-tables-by-time-range/</loc><lastmod>2026-08-05T22:42:41.989Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/geometry-validity-and-repair/</loc><lastmod>2026-08-05T22:43:16.950Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/spatial-table-partitioning/list-partitioning-spatial-data-by-region/</loc><lastmod>2026-08-05T22:43:27.554Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/spatial-table-partitioning/</loc><lastmod>2026-08-05T22:44:11.940Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/spatial-table-partitioning/indexing-and-planning-on-partitioned-spatial-tables/</loc><lastmod>2026-08-05T23:05:47.305Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/alembic-for-spatial-schemas/</loc><lastmod>2026-08-05T23:07:23.372Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/alembic-for-spatial-schemas/running-create-index-concurrently-from-alembic/</loc><lastmod>2026-08-05T23:08:45.586Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/alembic-for-spatial-schemas/autogenerating-spatial-migrations-with-alembic/</loc><lastmod>2026-08-05T23:10:09.924Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/alembic-for-spatial-schemas/writing-reversible-geometry-migrations/</loc><lastmod>2026-08-05T23:11:30.852Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/materialized-views-for-spatial-caching/</loc><lastmod>2026-08-05T23:12:53.473Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/materialized-views-for-spatial-caching/caching-tile-queries-with-materialized-views/</loc><lastmod>2026-08-05T23:14:19.674Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/materialized-views-for-spatial-caching/refreshing-materialized-views-concurrently/</loc><lastmod>2026-08-05T23:15:39.910Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/materialized-views-for-spatial-caching/choosing-between-a-cache-and-an-index/</loc><lastmod>2026-08-05T23:17:03.084Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/choosing-a-spatial-index-type/gist-vs-sp-gist-vs-brin-for-spatial-columns/</loc><lastmod>2026-08-05T23:18:32.807Z</lastmod></url><url><loc>https://www.postgis-python.com/advanced-gist-indexing-optimization/choosing-a-spatial-index-type/clustering-a-table-on-its-spatial-index/</loc><lastmod>2026-08-05T23:19:48.566Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-schema-migrations-and-evolution/backfilling-and-zero-downtime-migrations/rolling-back-a-failed-spatial-migration/</loc><lastmod>2026-08-05T23:24:42.575Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/spatial-joins/st-intersects-vs-st-contains-vs-st-within/</loc><lastmod>2026-08-05T23:26:02.238Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/bounding-box-filtering/st-subdivide-for-oversized-polygons/</loc><lastmod>2026-08-05T23:27:27.217Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/st_dwithin-radius-searches/geography-vs-geometry-for-radius-queries/</loc><lastmod>2026-08-05T23:28:46.118Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/detecting-gist-index-bloat/finding-unused-spatial-indexes/</loc><lastmod>2026-08-05T23:30:11.140Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-schema-migrations-and-evolution/concurrent-index-builds/dropping-a-spatial-index-safely/</loc><lastmod>2026-08-05T23:31:25.975Z</lastmod></url><url><loc>https://www.postgis-python.com/mastering-core-spatial-query-patterns/knn-nearest-neighbor-queries/filtered-knn-when-the-index-cannot-help/</loc><lastmod>2026-08-05T23:32:46.364Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/session-management-for-spatial-data/bulk-loading-geometries-with-copy/</loc><lastmod>2026-08-05T23:34:08.488Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/autovacuum-tuning-for-geometry-tables/vacuum-freeze-and-geometry-toast-tables/</loc><lastmod>2026-08-05T23:35:35.404Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-schema-migrations-and-evolution/in-place-srid-reprojection/auditing-srid-consistency-across-a-database/</loc><lastmod>2026-08-05T23:36:53.342Z</lastmod></url><url><loc>https://www.postgis-python.com/spatial-performance-monitoring-and-observability/pg-stat-statements-for-spatial-workloads/alerting-on-spatial-query-regressions/</loc><lastmod>2026-08-05T23:38:15.516Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/choosing-a-postgis-driver/asyncpg-for-spatial-workloads/</loc><lastmod>2026-08-05T23:39:34.750Z</lastmod></url><url><loc>https://www.postgis-python.com/sqlalchemy-and-geoalchemy-integration-workflows/type-coercion-and-serialization/streaming-geojson-responses-without-buffering/</loc><lastmod>2026-08-05T23:40:58.711Z</lastmod></url></urlset>

