Ваш индекс "работает", но он только частично , полезный для этого запроса.
Вы не раскрыли точные детали индекса type_status_date
, но на основе name Я предполагаю, что он индексирует поля типа записи, статуса публикации и даты публикации, в этом конкретном порядке.
Это означает, что type_status_date
может использоваться только для сужения результатов на основе типа записи, но не может быть используется для поиска родительского поста, поскольку последнее поле не является частью индекса. Mysql может использовать только один индекс для таблицы в запросе.
Если вы выполнили запрос
SELECT COUNT(*)
FROM wp_posts
WHERE post_type = 'product_variation'
, то счетчик, вероятно, будет намного ближе к отсканированным строкам подсчитайте в объяснении.
Как объяснил Гордон, индекс по типу поста, родительские поля поста будут более эффективными в этом случае.