Mysql does not prevent the creation of an index for the same column(s) when different index names are used. I guess that internally only one index is created and updated, but I better ask here if this is true.
When my suggestion is not right, what is the reason to maintain the index more than one time?
There is also the case when a table has two indexes, one for
field-1and a compound one for(field-1, field-2). The second index makes the first unneeded but I doubt that MySQL does anything less than maintaining both indexes.It’s the developer’s or DBA’s job to figure than an index is duplicate or redundant and should be removed.
My guess for the reason that such duplicates appeared in the first place is that someone made tests in the past with indexes to optimize some queries and forgot to remove them when done.