41554 blogs · [ { "id": "01a08c5b-85ea-73a0-b9f5-c4d2628e7a1b", "title": "Analyzing Postgres Tables", "url": "https://www.valerieparhamthompson.com/posts/analyzing-postgres-tables/", "published_at": "2026-06-04T00:01:15+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d262f84b9b", "title": "Extended Statistics in Postgres", "url": "https://www.valerieparhamthompson.com/posts/extended-statistics-postgres/", "published_at": "2026-06-02T00:06:31+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26327dfca", "title": "Trade Area Analysis on a Budget: PostGIS, Census Data, and Drive-Time Isochrones", "url": "https://www.valerieparhamthompson.com/posts/postgis-trade-area-census-isochrones/", "published_at": "2026-04-02T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d2638e1071", "title": "What Geofencing Is and How Different Industries Use It", "url": "https://www.valerieparhamthompson.com/posts/what-geofencing-is-and-how-different-industries-use-it/", "published_at": "2026-03-27T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d263bdb3d5", "title": "Four Database Choices You Can't Easily Undo", "url": "https://www.valerieparhamthompson.com/posts/four-database-choices-you-cant-easily-undo/", "published_at": "2026-03-21T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26498e9d9", "title": "What Lidar Data Looks Like and How to Query It with DuckDB", "url": "https://www.valerieparhamthompson.com/posts/lidar-point-clouds-duckdb/", "published_at": "2026-03-12T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d264f26684", "title": "Latency by Pekka Enberg", "url": "https://www.valerieparhamthompson.com/posts/latency-book-review/", "published_at": "2025-11-28T12:43:09+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26547f9e5", "title": "Using pg_stat_statements for Query profiling and performance tuning", "url": "https://www.valerieparhamthompson.com/posts/using-pg-stat-statements-for-profiling-tuning/", "published_at": "2025-11-07T20:11:32+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26623fe29", "title": "How A* Improves on Dijkstra (and When It Doesn't)", "url": "https://www.valerieparhamthompson.com/posts/how-astar-improves-on-dijkstra/", "published_at": "2025-11-05T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d266f0d509", "title": "From Vacuums to Taxis: What Makes a Routing Problem Hard for Robots", "url": "https://www.valerieparhamthompson.com/posts/from-roomba-to-waymo-what-makes-a-routing-problem-hard/", "published_at": "2025-10-28T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d267987c07", "title": "Real-Time Traffic Data for Custom Apps: A Developer's Guide", "url": "https://www.valerieparhamthompson.com/posts/real-time-traffic-data-for-custom-apps/", "published_at": "2025-08-14T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26815f102", "title": "Query Optimization with HypoPG", "url": "https://www.valerieparhamthompson.com/posts/query-optimization-with-hypopg/", "published_at": "2025-07-08T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d2687d857e", "title": "Random Data Generation: Then and Now", "url": "https://www.valerieparhamthompson.com/posts/random-data-generation-then-and-now/", "published_at": "2025-07-06T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d268dffd39", "title": "Routing APIs Compared: Choosing the Right Shortest-Path Service", "url": "https://www.valerieparhamthompson.com/posts/routing-apis-compared/", "published_at": "2025-05-18T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d2697d1ea9", "title": "How PostGIS Finds Your Nearest Neighbor (Without Scanning Every Row)", "url": "https://www.valerieparhamthompson.com/posts/how-postgis-finds-your-nearest-neighbor/", "published_at": "2025-03-11T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26a30b350", "title": "Getting Started with pgRouting: Shortest Paths in PostgreSQL", "url": "https://www.valerieparhamthompson.com/posts/getting-started-with-pgrouting/", "published_at": "2025-01-21T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26a7767f8", "title": "Finding the Right Yugabyte Api Endpoint", "url": "https://www.valerieparhamthompson.com/posts/finding-the-right-yugabyte-api-endpoint/", "published_at": "2024-12-04T15:09:40+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26b627339", "title": "Handling Reserved Keywords in DSBulk for Seamless Data Migration", "url": "https://www.valerieparhamthompson.com/posts/reserved-keyword-dsbulk/", "published_at": "2024-10-16T11:50:11+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26c18e807", "title": "Graph Search on Your Floor: How Robot Vacuums Use Pathfinding Algorithms", "url": "https://www.valerieparhamthompson.com/posts/graph-search-on-your-floor/", "published_at": "2024-09-17T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26c23c13d", "title": "Code as Instructional Technology", "url": "https://www.valerieparhamthompson.com/posts/code-as-instructional-technology/", "published_at": "2024-09-05T19:41:03+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26c3357f4", "title": "PostGIS Geography vs. Geometry: Choosing the Right Type for Your Spatial Data", "url": "https://www.valerieparhamthompson.com/posts/postgis-geography-vs-geometry/", "published_at": "2024-07-09T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26d2a3600", "title": "Count Large Partitions in YCQL", "url": "https://www.valerieparhamthompson.com/posts/count-large-partitions/", "published_at": "2024-06-11T02:33:53+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26d2de61f", "title": "Optimizing Read and Write Latency", "url": "https://www.valerieparhamthompson.com/posts/optimizing-read-write-latency/", "published_at": "2024-06-01T02:09:27+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26e1670aa", "title": "Tablet Sizing Strategies", "url": "https://www.valerieparhamthompson.com/posts/tablet-sizing-strategies/", "published_at": "2024-03-19T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26ee33709", "title": "Database transformation from SQL Server to YugabyteDB", "url": "https://www.valerieparhamthompson.com/posts/database-transformation-from-sql-server-to-yugabytedb/", "published_at": "2024-03-15T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26f022727", "title": "Correct Partition Endpoints", "url": "https://www.valerieparhamthompson.com/posts/correct-partition-endpoints/", "published_at": "2024-03-02T01:50:10+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d26f91f61b", "title": "Why You Need a Default Partition", "url": "https://www.valerieparhamthompson.com/posts/missing-row-partitions/", "published_at": "2024-02-28T21:38:44+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d270430fd9", "title": "Generate Random Data", "url": "https://www.valerieparhamthompson.com/posts/generate-random-data/", "published_at": "2024-01-11T18:04:46+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d270d3d223", "title": "Database Scaling for Seasonal Increases", "url": "https://www.valerieparhamthompson.com/posts/database-scaling-for-seasonal-increases/", "published_at": "2023-12-12T18:47:10+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d271c55b26", "title": "Timestamps in PostgreSQL Migration", "url": "https://www.valerieparhamthompson.com/posts/timestamps-postgres-migration/", "published_at": "2023-09-21T19:40:39+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d2724a6b1a", "title": "Leveraging time to live (TTL)", "url": "https://www.valerieparhamthompson.com/posts/time-to-live/", "published_at": "2023-09-13T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d272c27329", "title": "Foreign Data Wrappers", "url": "https://www.valerieparhamthompson.com/posts/foreign-data-wrappers/", "published_at": "2023-08-15T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d273148b64", "title": "Provision Ansible Postgres on Mac", "url": "https://www.valerieparhamthompson.com/posts/provision-ansible-postgres/", "published_at": "2023-08-06T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d273cdf031", "title": "Debezium UI Postgres Connector", "url": "https://www.valerieparhamthompson.com/posts/debezium-ui-postgres-connector/", "published_at": "2023-07-28T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d274295e1d", "title": "YugabyteDB Snapshots", "url": "https://www.valerieparhamthompson.com/posts/yugabytedb-snapshots/", "published_at": "2023-07-28T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27473d38b", "title": "String Search", "url": "https://www.valerieparhamthompson.com/posts/string-search/", "published_at": "2023-06-04T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d274c50041", "title": "Audit Logging", "url": "https://www.valerieparhamthompson.com/posts/audit-logging/", "published_at": "2023-05-21T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d275906151", "title": "Replication scenarios", "url": "https://www.valerieparhamthompson.com/posts/replication-scenarios/", "published_at": "2023-05-16T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d276141b15", "title": "Development Environment for YugabyteDB on Mac M1", "url": "https://www.valerieparhamthompson.com/posts/development-environment-for-yugabytedb-on-mac-m1/", "published_at": "2023-04-15T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d276cabb94", "title": "Fuzzy matching in YugabyteDB", "url": "https://www.valerieparhamthompson.com/posts/fuzzy-matching-yugabyte/", "published_at": "2023-03-15T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d2775ce7d2", "title": "Audit Logging in YugabyteDB | YugabyteDB Friday Tech Talks", "url": "https://www.valerieparhamthompson.com/posts/presentation-tech-talks-audit-logging/", "published_at": "2022-12-02T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27851b772", "title": "Optimizing YugabyteDB Memory Tuning for YSQL", "url": "https://www.valerieparhamthompson.com/posts/optimizing-yugabytedb-memory-tuning-for-ysql/", "published_at": "2022-08-01T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d278e89938", "title": "Best Practices for Monitoring YugabyteDB", "url": "https://www.valerieparhamthompson.com/posts/presentation-distributed-sql-summit-monitoring/", "published_at": "2021-09-23T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d2793b9927", "title": "Fireside Chat with Kroger at the Distributed SQL Summit", "url": "https://www.valerieparhamthompson.com/posts/presentation-yugabytedb-distributed-summit-kroger/", "published_at": "2021-09-21T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d279fa9d3d", "title": "Migrating Oracle Workloads to Google Cloud – BMS", "url": "https://www.valerieparhamthompson.com/posts/migrating-oracle-workloads-to-google-cloud-bms/", "published_at": "2020-12-09T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27ac57d58", "title": "ApacheCon, Upgrading Cassandra Using Automation", "url": "https://www.valerieparhamthompson.com/posts/presentation-apache-con-upgrading-cassandra/", "published_at": "2020-10-01T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27ae633dd", "title": "Postgres Partial Indexes on Email Address Domains", "url": "https://www.valerieparhamthompson.com/posts/postgres-partial-indexes-on-email-address-domains/", "published_at": "2020-08-20T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27bd655f3", "title": "PostgreSQL Backups", "url": "https://www.valerieparhamthompson.com/posts/postgresql-backups/", "published_at": "2020-07-20T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27c14fac5", "title": "Upgrading a Large Cassandra Cluster with cstar", "url": "https://www.valerieparhamthompson.com/posts/upgrading-a-large-cassandra-cluster-with-cstar/", "published_at": "2020-07-02T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27cfeb1ba", "title": "Spark + Cassandra Best Practices", "url": "https://www.valerieparhamthompson.com/posts/spark-cassandra-best-practices/", "published_at": "2020-07-01T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27def77c0", "title": "Postgres Covering Indexes and the Visibility Map", "url": "https://www.valerieparhamthompson.com/posts/postgres-covering-indexes-and-the-visibility-map/", "published_at": "2020-06-15T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27e2e06a5", "title": "Postgres Security Patches Related to the Search Path", "url": "https://www.valerieparhamthompson.com/posts/postgres-security-patches-related-to-the-search-path/", "published_at": "2020-05-20T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27e6d82f7", "title": "Capacity Planning Using Facebook Prophet | DataStax Accelerate", "url": "https://www.valerieparhamthompson.com/posts/presentation-datastax-facebook-prophet/", "published_at": "2019-05-21T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27e96321c", "title": "Handling a Cassandra Transactional Workload", "url": "https://www.valerieparhamthompson.com/posts/handling-a-cassandra-transactional-workload/", "published_at": "2018-09-20T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27f36d98e", "title": "Orientation to Cassandra Nodetool", "url": "https://www.valerieparhamthompson.com/posts/orientation-to-cassandra-nodetool/", "published_at": "2018-08-01T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27f963917", "title": "Cassandra Information Using Nodetool", "url": "https://www.valerieparhamthompson.com/posts/cassandra-information-using-nodetool/", "published_at": "2018-07-15T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27faacd81", "title": "Cassandra Backups Using Nodetool", "url": "https://www.valerieparhamthompson.com/posts/cassandra-backups-using-nodetool/", "published_at": "2018-06-11T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d27fd7ab16", "title": "Battle of the Online Schema Change Methods", "url": "https://www.valerieparhamthompson.com/posts/presentation-mariadb-online-schema-change/", "published_at": "2018-02-27T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d280c22592", "title": "Quick Random Data in MySQL", "url": "https://www.valerieparhamthompson.com/posts/quick-random-data-in-mysql/", "published_at": "2018-01-11T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d280ecc2a1", "title": "Using MariaDB Connect Engine to Merge Heterogenous Data Sources", "url": "https://www.valerieparhamthompson.com/posts/using-mariadb-connect-engine-to-merge-heterogenous-data-sources/", "published_at": "2017-01-04T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d2811d0778", "title": "Using gh-ost for Online Schema Changes", "url": "https://www.valerieparhamthompson.com/posts/using-gh-ost-for-online-schema-changes/", "published_at": "2016-10-21T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d2812415cd", "title": "Enabling InnoDB Compression", "url": "https://www.valerieparhamthompson.com/posts/enabling-innodb-compression/", "published_at": "2016-08-23T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d281b0aad4", "title": "Data Encryption at Rest in Oracle MySQL 5.7", "url": "https://www.valerieparhamthompson.com/posts/data-encryption-at-rest-in-oracle-mysql-5-7/", "published_at": "2016-04-20T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d2826d241c", "title": "New MySQL File System Vulnerabilities", "url": "https://www.valerieparhamthompson.com/posts/new-mysql-file-system-vulnerabilities/", "published_at": "2016-03-15T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d28306fe8c", "title": "Data Encryption at Rest in MariaDB", "url": "https://www.valerieparhamthompson.com/posts/data-encryption-at-rest-in-mariadb/", "published_at": "2016-02-18T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d283c76f96", "title": "MySQL Query Profiling with Performance Schema", "url": "https://www.valerieparhamthompson.com/posts/mysql-query-profiling-with-performance-schema/", "published_at": "2015-05-26T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d2847091a9", "title": "Detecting Source of MySQL Queries with Comments", "url": "https://www.valerieparhamthompson.com/posts/detecting-source-of-mysql-queries-with-comments/", "published_at": "2015-02-17T00:00:00+00:00" }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d2851108b2", "title": "About", "url": "https://www.valerieparhamthompson.com/about/", "published_at": null }, { "id": "01a08c5b-85ea-73a0-b9f5-c4d285ee4738", "title": "Tech Reviews", "url": "https://www.valerieparhamthompson.com/books/", "published_at": null } ] posts Claim your blog
Back to valerieparhamthompson.com
Blog · corpus.blog/blogs/valerieparhamthompson.com/posts

valerieparhamthompson.com

valerieparhamthompson.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

Undated