Размер ваших индексов кажется довольно большим по сравнению с данными.
Однако ответ на ваш вопрос во многом зависит от запросов, которые вы выполняете к этой таблице.Вы должны знать свои запросы, чтобы вы могли анализировать их один за другим: если вы найдете индекс, который не использует ни один из запросов, отбросьте его.
Если вы не знаете свои запросы и выполняете ихMySQL 5.6 или выше, вы можете использовать PERFORMANCE_SCHEMA
для доступа к статистике ввода-вывода индексов (с момента последнего перезапуска базы данных).Это может использоваться для обнаружения неиспользуемых индексов, например:
SELECT
object_schema,
object_name,
index_name
FROM
performance_schema.table_io_waits_summary_by_index_usage
WHERE
index_name IS NOT NULL
AND count_star = 0
ORDER BY object_schema, object_name;
См. это обсуждение для получения дополнительной информации.Однако будьте осторожны при использовании этого метода: у вас может быть ежемесячный или ежеквартальный запрос, основанный на индексе чудака, который может не отображаться при краткосрочном анализе.