<!-- llms-explorer concept facts · https://llms-explorer.com/tree/atlas-performance-advisor-drop-index-recommendations-unused-redundant-hidden/ · pack 2026-10-30 · ~1344 tokens -->

# Atlas Performance Advisor drop-index recommendations (unused, redundant, hidden)

> Source-anchored research for Atlas Performance Advisor drop-index recommendations (unused, redundant, hidden). Run status: COMPLETED.

Parent: [Hidden indexes and safe index removal](https://llms-explorer.com/tree/hidden-indexes-and-safe-index-removal/) · 3 facets · 15 facts · page: https://llms-explorer.com/tree/atlas-performance-advisor-drop-index-recommendations-unused-redundant-hidden/

## How it works

- Atlas flags an index as unused when it has supported no query for at least seven days after creation or server restart; it inspects only the 20 most active collections for unused indexes. (low confidence) (verified as of 2026-10-30) — [source](https://www.mongodb.com/docs/atlas/performance-advisor/drop-indexes.md)
- Atlas always recommends dropping hidden indexes, but tells users to drop only after deciding they are unnecessary. Its hidden-index display covers the top 20 most active namespaces when the page loads, so it may omit others. (low confidence) (verified as of 2026-10-30) — [source](https://www.mongodb.com/docs/atlas/performance-advisor/drop-indexes.md)
- Review usage over a representative application cycle before removing an apparently unused index. Percona warns specifically about monthly reporting indexes; OneUptime likewise qualifies zero-access candidates by a representative observation period. (medium confidence) — [source](https://www.percona.com/blog/identifying-unused-indexes-in-mongodb/)
- Hide a candidate before dropping it to test query-planning impact; if performance regresses, unhide it. A hidden index remains maintained and is immediately available when unhidden, avoiding a rebuild. (medium confidence) — [source](https://www.mongodb.com/docs/manual/core/index-hidden.md)
- Server restarts reset index-usage counters, and changing an index between hidden and visible also resets its $indexStats. Account for these observation-window resets when reviewing removal evidence. (medium confidence) — [source](https://www.percona.com/blog/identifying-unused-indexes-in-mongodb/)

## Comparisons and alternatives

- Hiding does not remove index maintenance or storage costs: hidden indexes are updated on writes and continue consuming disk space and memory. A hidden trial therefore tests query dependence rather than the resource savings from actual removal. (medium confidence) — [source](https://www.mongodb.com/docs/atlas/performance-advisor/drop-indexes.md)

## Facts and statements

- Atlas Performance Advisor recommends removing unused, redundant, and hidden indexes to reduce write overhead and recover storage. (low confidence) (verified as of 2026-10-30) — [source](https://www.mongodb.com/docs/atlas/performance-advisor/drop-indexes.md)
- Atlas labels a same-collection prefix index redundant: with {a:1,b:-1}, {a:1} is a candidate but {b:-1} is not. The related covering indexes shown beneath a candidate are not themselves removal recommendations. (low confidence) (verified as of 2026-10-30) — [source](https://www.mongodb.com/docs/atlas/performance-advisor/drop-indexes.md)
- Hiding a candidate removes it from query planning but retains write maintenance and storage costs. Unhiding restores availability without rebuilding the index. (medium confidence) — [source](https://www.mongodb.com/docs/atlas/performance-advisor/drop-indexes.md)
- Before dropping based on usage counters, inspect every read-serving replica-set member: reads on another member can make one node appear to have an unused index. (medium confidence) — [source](https://www.percona.com/blog/identifying-unused-indexes-in-mongodb/)
- A zero access counter does not prove an index has no purpose: uniqueness checks and TTL expiration do not increment these read-usage counters. Hidden unique and TTL indexes still enforce uniqueness and expire documents, so a successful hide trial does not prove that losing those behaviors is safe. (medium confidence) — [source](https://www.percona.com/blog/identifying-unused-indexes-in-mongodb/)
- Prefix coverage alone is insufficient grounds for automatic removal: MongoDB's compound-index removal guidance assumes neither index has a sparse or unique constraint, qualifications omitted from OneUptime's simple redundancy example. (medium confidence) — [source](https://www.mongodb.com/docs/manual/core/indexes/index-types/index-compound.md)
- Atlas's Drop Index dialog supplies shell commands for dropping or hiding and a link to the index-management UI; the user then executes the selected action through the UI or shell. (low confidence) (verified as of 2026-10-30) — [source](https://www.mongodb.com/docs/atlas/performance-advisor/drop-indexes.md)
- A June 2017 incident report for MongoDB 3.2.11 describes query latency increasing after dropping zero-use indexes. SERVER-29419 was closed as a duplicate of WT-3207, a checkpoint-wait issue; it is historical evidence, not proof of a current Atlas recommendation defect. (low confidence) — [source](https://jira.mongodb.org/browse/SERVER-29419)
- A practical validation sequence is to inspect usage and index definitions, hide the candidate, monitor representative queries for regressions, then drop only after validation; unhide if query performance regresses. (medium confidence) — [source](https://www.mongodb.com/docs/atlas/performance-advisor/drop-indexes.md)
