<!-- llms-explorer concept facts · https://llms-explorer.com/tree/write-amplification-and-cache-cost-of-unused-indexes/ · pack 2026-10-31 · ~1415 tokens -->

# Write amplification and cache cost of unused indexes

> Source-anchored research for Write amplification and cache cost of unused indexes. Run status: COMPLETED.

Parent: [Unused index detection with $indexStats](https://llms-explorer.com/tree/unused-index-detection-with-indexstats/) · 4 facets · 14 facts · page: https://llms-explorer.com/tree/write-amplification-and-cache-cost-of-unused-indexes/

## Definitions

- A zero $indexStats access count is not a measurement of maintenance work or proof that an index has no value: Percona notes that uniqueness enforcement does not increment the access counter and warns about indexes needed by occasional reporting workloads. (medium confidence) — [source](https://www.percona.com/blog/identifying-unused-indexes-in-mongodb/)

## How it works

- Before deciding an index is unnecessary, observe a representative application cycle and consider rare but important query patterns. Percona warns about monthly reports; Alibaba illustrates a rarely used leaderboard index that must remain. (medium confidence) — [source](https://www.percona.com/blog/identifying-unused-indexes-in-mongodb/)
- Index maintenance can create cache pressure: MongoDB documents that sufficiently scattered random index inserts can cause high WiredTiger eviction and replacement, requiring disk updates. An index's lack of query reads does not eliminate this write-side access. (medium confidence) — [source](https://www.mongodb.com/docs/manual/faq/indexes.md)
- Representative workload coverage matters before removal: Percona warns that an index used only for monthly reporting may appear unused during a shorter observation period, and that retained monitoring history should cover the full application cycle. (low confidence) — [source](https://www.percona.com/blog/identifying-unused-indexes-in-mongodb/)

## Problems, failure modes and limitations

- Hiding an index removes it from query planning but continues its write maintenance and memory/disk consumption. A hide experiment can assess query dependence, but cannot measure the maintenance savings of actually dropping the index. (medium confidence) — [source](https://www.mongodb.com/docs/manual/core/index-hidden.md)

## Facts and statements

- Maintaining unnecessary indexes adds work to writes and consumes storage; removing indexes that the workload does not need can improve write performance and reduce storage requirements. (high confidence) — [source](https://www.mongodb.com/docs/manual/core/write-performance.md)
- MongoDB inserts or removes corresponding keys on inserts and deletes. Updates may change only a subset of indexes, depending on affected keys; sparse and partial indexes are maintained only for documents included in them. The blanket statement that every update rewrites every index is too broad. (medium confidence) — [source](https://www.mongodb.com/docs/manual/core/write-performance.md)
- Indexes without query benefits can still increase WiredTiger cache pressure through maintenance. Percona describes additional cache evictions and slower operation under over-indexing; Netdata independently identifies unused indexes as a source of cache waste and write amplification. (medium confidence) — [source](https://www.percona.com/blog/want-mongodb-performance-you-will-need-to-add-and-remove-indexes/)
- WiredTiger uses both an internal cache and the filesystem cache. Indexes in the internal cache have a different representation from their on-disk form and may retain prefix compression; therefore, on-disk index size alone does not establish how much RAM dropping an index will release. (low confidence) — [source](https://www.mongodb.com/docs/manual/core/wiredtiger/)
- A zero $indexStats access count does not quantify index maintenance cost or prove the absence of useful behavior: the counter covers user-driven access, excludes internal operations such as TTL expiration, and uniqueness checks can occur without incrementing it. (medium confidence) — [source](https://www.mongodb.com/docs/manual/reference/operator/aggregation/indexStats.md)
- Alibaba documents another overhead at high object counts: each index adds a disk file and corresponding WiredTiger dhandle structures. Reducing unnecessary indexes reduces those resources; the performance effect depends on workload and access patterns. (low confidence) — [source](https://www.alibabacloud.com/help/en/mongodb/support/what-do-i-do-if-the-slow-running-or-an-exception-occurs-on-my-instance-due-to-a-large-number-of-collections)
- No universal RAM or write-latency saving follows from an unused-index count. Percona explicitly scopes its customer example to that workload, while MongoDB describes per-index overhead without a fixed multiplier. Treat estimated benefits as hypotheses for a measured removal experiment. (medium confidence) — [source](https://www.percona.com/blog/want-mongodb-performance-you-will-need-to-add-and-remove-indexes/)
- Unused indexes can add write work despite serving no queries: MongoDB maintains applicable index entries on inserts and deletes, and Percona identifies excess indexes as overhead on writes, disk and memory. (medium confidence) — [source](https://www.mongodb.com/docs/manual/core/write-performance.md)
- The FAST 2022 paper measures physical write amplification as post-compression bytes written to NAND divided by bytes written into the database. Its WiredTiger/B+-tree comparisons vary workload and storage parameters; they do not measure savings from removing unused MongoDB secondary indexes and should not supply a universal index-removal multiplier. (low confidence) — [source](https://www.usenix.org/system/files/fast22-qiao.pdf)
