Aashi DuttSenior technical content writer, writing Mem0's accountMem0
Mem0's agent memory service, with vectors and relational data in Aurora PostgreSQL and multi-tenant filters on every query.
Mem0 blog, published Read the post (opens Mem0 blog in a new tab)
Observation
Mem0's HNSW indexes failed to serve its production queries: the Postgres planner chose 8-to-14-second sequential scans over a 1,153 GB table once selective tenant filters entered, and Mem0 moved its vectors to turbopuffer.
- Takeaway
- Check with EXPLAIN that filtered vector queries use the index at production size. Mem0 says teams under roughly 10 million vectors with simple queries probably should not migrate.
- What happened
- Mem0's HNSW indexes recorded 0 scans in production while every vector query fell back to an 8-to-14-second sequential scan over a 1,153 GB table. Mem0's own diagnosis: the Postgres query planner correctly decided a sequential scan was cheaper than the HNSW index once selective multi-tenant filters entered the query, and the post says this is not a pgvector bug and that the planner was doing its job. The unused indexes cost 325 GB of storage, and Mem0 moved its vectors to turbopuffer and kept relational data in Postgres, where retrieval now averages about 110 to 120 ms.
- Public organization write-up (Mem0's own blog)
- Measured results reported
- Published Jul 30, 2026, updated Sep 28, 2026
Deployment details
Mem0's agent memory service, with vectors and relational data in Aurora PostgreSQL and multi-tenant filters on every query.
- Public organization write-up (Mem0's own blog)
- Measured results reported
- Published Jul 30, 2026, updated Sep 28, 2026
- Team
- Mem0
- Workload
- Multi-tenant vector search for agent memory over a 1,153 GB table
- Product version
- pgvector HNSW indexes on Aurora PostgreSQL
- Measurement
- 0 index scans; 8 to 14 second sequential scans; 325 GB of unused index storage




