<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>https://savedquery.com</loc>
<lastmod>2026-10-02T16:46:15.361Z</lastmod>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://savedquery.com/sections/sql-and-query-writing</loc>
<lastmod>2026-09-29T04:08:32.877Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://savedquery.com/sections/database-administration</loc>
<lastmod>2026-09-05T21:23:05.584Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://savedquery.com/sections/internal-tools</loc>
<lastmod>2026-09-15T23:28:14.545Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://savedquery.com/sections/data-access</loc>
<lastmod>2026-10-02T16:46:15.361Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://savedquery.com/sections/features</loc>
<lastmod>2026-08-25T18:21:23.068Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://savedquery.com/authors/priya-sundaram</loc>
<lastmod>2026-10-02T16:46:15.361Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://savedquery.com/authors/celeste-marchand</loc>
<lastmod>2026-10-02T16:46:15.361Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://savedquery.com/authors/daniel-kwiatkowski</loc>
<lastmod>2026-10-02T16:46:15.361Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://savedquery.com/authors/marcus-oyelaran</loc>
<lastmod>2026-10-02T16:46:15.361Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://savedquery.com/authors/elias-s-rensen</loc>
<lastmod>2026-10-02T16:46:15.361Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://savedquery.com/authors/rosa-nair</loc>
<lastmod>2026-10-02T16:46:15.361Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://savedquery.com/posts/implementing-column-level-permissions-in-postgres</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/15b82b2d-94bc-4632-a995-9400ec7ed4c8.jpeg</image:loc>
</image:image>
<lastmod>2026-10-02T16:46:15.361Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/risks-of-sharing-database-credentials-across-team-members</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/2371f364-4bf9-40af-af34-a6bfe5842033.jpeg</image:loc>
</image:image>
<lastmod>2026-10-01T16:21:39.815Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/postgres-role-hierarchy-design-for-application-teams</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/db1c5ca7-00c7-48e1-b3bd-bed03a1e5054.jpeg</image:loc>
</image:image>
<lastmod>2026-09-30T17:56:00.191Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/data-masking-strategies-for-non-production-environments</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/b2df3e24-679c-47e4-83a9-75acd9130239.jpeg</image:loc>
</image:image>
<lastmod>2026-09-30T17:06:52.482Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/recursive-ctes-in-postgres-for-hierarchical-data-queries</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/9a9e5046-b69c-48dc-a562-38f6cb769096.png</image:loc>
</image:image>
<lastmod>2026-09-29T04:08:32.877Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/detecting-and-fixing-n-1-query-problems-in-rails-and-django-orms</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/c80649db-29d8-4d7f-b5c4-8c39277b8721.jpeg</image:loc>
</image:image>
<lastmod>2026-09-27T01:25:39.600Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/full-text-search-in-postgres-without-elasticsearch</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/fad2525a-7a0b-4171-a6c6-39f4d5883e7c.jpeg</image:loc>
</image:image>
<lastmod>2026-09-26T05:40:33.760Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/writing-idempotent-sql-data-migration-scripts</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/f97db5af-55ab-4bc8-ae14-2abd625e0901.jpeg</image:loc>
</image:image>
<lastmod>2026-09-25T00:39:22.390Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/common-table-expressions-vs-subqueries-in-postgres-performance</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/4ef21bdc-d3d9-4aef-95be-0fadfe45fa97.jpeg</image:loc>
</image:image>
<lastmod>2026-09-23T22:34:24.299Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/lateral-joins-in-postgres-for-per-row-subqueries</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/79153dd9-7dd3-4fce-a7b2-8c6d6ce0ffa9.jpeg</image:loc>
</image:image>
<lastmod>2026-09-22T18:35:49.545Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/window-functions-in-postgres-for-ranking-and-running-totals</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/4bef0482-1e5d-401a-99b9-fc5809a06b50.jpeg</image:loc>
</image:image>
<lastmod>2026-09-21T17:59:35.901Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/json-query-patterns-in-postgres-with-jsonb</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/2a529255-2cd7-446a-8913-d9ffe8c92b70.jpeg</image:loc>
</image:image>
<lastmod>2026-09-20T18:34:34.482Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/writing-safe-update-and-delete-statements-in-production</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/36859a4a-fcf4-4d29-91ad-c0703d16236f.jpeg</image:loc>
</image:image>
<lastmod>2026-09-19T17:08:24.387Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/aggregation-patterns-for-business-metrics-in-sql</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/12aab7b6-714b-462b-9a74-b4486f40b82d.jpeg</image:loc>
</image:image>
<lastmod>2026-09-18T17:40:05.934Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/writing-efficient-pagination-queries-in-postgres</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/a7d75fe1-126f-4f4b-badb-309f56f02740.jpeg</image:loc>
</image:image>
<lastmod>2026-09-17T17:05:27.138Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/self-hosting-metabase-vs-using-a-managed-admin-panel</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/f3547b5b-db04-4c65-a1f7-8e3ed6a9984a.jpeg</image:loc>
</image:image>
<lastmod>2026-09-15T23:28:14.545Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/designing-internal-tools-for-support-team-workflows</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/076fd6dd-cee4-473d-8a67-2fabbe25abc6.jpeg</image:loc>
</image:image>
<lastmod>2026-09-15T23:03:41.024Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/admin-panel-security-risks-in-production-database-access</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/a5572d7d-0aee-484c-b340-359d529ccc26.jpeg</image:loc>
</image:image>
<lastmod>2026-09-15T22:28:37.448Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/retool-vs-appsmith-vs-tooljet-for-internal-database-apps</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/77ec87b7-3dfe-4abf-8469-7c52c4cd5fd1.jpeg</image:loc>
</image:image>
<lastmod>2026-09-13T02:41:44.715Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/audit-logging-requirements-for-internal-database-tools</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/e0b8c819-1888-419f-ae05-f1eab2535f69.jpeg</image:loc>
</image:image>
<lastmod>2026-09-11T03:27:29.235Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/sql-joins-explained-for-non-engineering-team-members</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/cf982965-2d1b-4024-8689-df9cf08f56e1.jpeg</image:loc>
</image:image>
<lastmod>2026-09-08T21:50:13.210Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/role-based-access-control-patterns-in-internal-admin-tools</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/49a80211-1cf6-4312-9066-e81c0d22b9ca.jpeg</image:loc>
</image:image>
<lastmod>2026-09-08T05:25:54.785Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/zero-downtime-schema-migrations-in-postgres-with-pg-repack</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/4143d286-c06f-4e19-9f9e-e813fcca2e83.jpeg</image:loc>
</image:image>
<lastmod>2026-09-05T21:23:05.584Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/mysql-slow-query-log-configuration-and-analysis</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/420b57ea-7d72-4599-95af-ad5036056204.jpeg</image:loc>
</image:image>
<lastmod>2026-09-04T16:44:37.294Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/postgres-partial-indexes-for-sparse-filtered-queries</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/d9c1256b-737a-477c-b29c-41ae2404600a.jpeg</image:loc>
</image:image>
<lastmod>2026-09-03T17:49:53.017Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/postgres-connection-pooling-with-pgbouncer-vs-pgpool-ii</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/cd3642cb-79c7-4359-adee-88e22aa1d5e8.jpeg</image:loc>
</image:image>
<lastmod>2026-09-01T20:54:36.380Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/mysql-innodb-buffer-pool-sizing-in-production</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/4f1b5942-3adb-49ea-b376-cee355c507dd.jpeg</image:loc>
</image:image>
<lastmod>2026-08-30T16:52:08.755Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/postgres-autovacuum-tuning-for-high-write-tables</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/0e751945-357b-413c-aaf9-3830bdfa04f3.jpeg</image:loc>
</image:image>
<lastmod>2026-08-29T16:46:57.281Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/postgres-row-level-security-policy-design-patterns</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/483909ec-e23d-4ba7-b277-a9a7fbc4c83d.png</image:loc>
</image:image>
<lastmod>2026-08-28T16:32:57.229Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/identifying-and-killing-long-running-queries-in-postgres</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/e3c10257-0941-4844-b5d9-624403f639ee.png</image:loc>
</image:image>
<lastmod>2026-08-25T19:17:38.685Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/saving-and-organizing-sql-queries-across-an-engineering-team</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/068739ee-c9b4-4259-baa3-617dc9e9ff56.jpeg</image:loc>
</image:image>
<lastmod>2026-08-25T18:21:23.068Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/least-privilege-database-access-for-support-and-operations-teams</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/80b0ae82-f4a8-46ed-b642-c9f1408be057.png</image:loc>
</image:image>
<lastmod>2026-08-25T18:21:21.728Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/building-self-serve-dashboards-for-product-sales-and-marketing-teams-without-a-d</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/cc6d515d-bf76-492b-a728-4659ddfa472f.jpeg</image:loc>
</image:image>
<lastmod>2026-08-25T03:09:49.507Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://savedquery.com/posts/build-vs-buy-decision-for-internal-admin-panels</loc>
<image:image>
<image:loc>https://mcxtywzsmeezbwapdahq.supabase.co/storage/v1/object/public/canvas-images/ffb1403e-e911-4b0d-a6b4-1217f2ffd591/canvas/d82772fe-1741-4980-a239-842fa9ac64fc/generated/7007709c-58d2-4edf-9a59-1c02cbcb83f4.jpeg</image:loc>
</image:image>
<lastmod>2026-08-25T02:58:18.276Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
</urlset>
