-
Type: Improvement
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: 3.4.0-rc0
-
Component/s: Index Maintenance
-
None
I'd mongodb support the invisible index. the invisible index is still maintained like other index, but the optimizer would ignore it.
Basic api:
db.runCommand( { collMod: "sessions", index: { keyPattern: { lastAccess: 1 }, invisible: true } }) db.runCommand( { collMod: "sessions", index: { keyPattern: { lastAccess: 1 }, invisible: false } })
*Why this is needed*
Most developer like freedom, they may not request DBA to review their queries and they feel free to create many indexes and Then database runs with many unnecessary indexes. However, it is hard for DBA to make sure which index is really unnecessary. Sometimes, even PD is not sure about that also. like the main developer has left company and so on or lack of document and so on. So no one can make decision to drop these indexes since the rollback may take a very long time. these index is there for impacting DML and make the optimizer harder sometime.
If we have the invisible index, DBA can make the index invisible first, and watch for 2 weeks. if we knows any query still need it, we can simply make it invisible false. if no query impacts, we can drop it confidently.
If you are ok with this requirement and are lacking of resource to work on this, I'd like to work on this.
looking forward your feedback.
- duplicates
-
SERVER-9306 Ability to temporarily forbid query optimizer from using index ("invisible index")
- Closed
- related to
-
SERVER-17625 Enable index filters to persist across restart
- Closed
- links to