«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему мои запросы «SELECT COUNT(*)» к таблице Change_event выполняются так медленно?

Почему мои запросы «SELECT COUNT(*)» к таблице Change_event выполняются так медленно?

Опубликовано 18 ноября 2024 г.
Просматривать:624

Why are my \

Решение медленных запросов «SELECT COUNT(*)» в MySQL

Ваш запрос к таблицеchange_event, подсчитывающий строки, превышающие определенный Change_event_id , испытывает значительные задержки. Но почему? Давайте углубимся в возможные причины.

Раскрытие поведения InnoDB

Механизм MySQL InnoDB использует кластеризованные первичные ключи, что означает, что первичный ключ хранится вместе с данными строк на страницах данных, а не чем отдельные индексные страницы. В результате сканирование диапазона, такое как ваше, требует сканирования всех потенциально широких строк на страницах данных. Этот фактор усугубляется столбцом таблицы xml_diff, типом данных TEXT, который еще больше замедляет обработку.

Стратегии оптимизации

Чтобы ускорить запрос, стоит рассмотреть два подхода. :

  • Оптимизировать таблицу: Эта команда реорганизует страницы данных в отсортированном порядке, потенциально повышая эффективность сканирования диапазона.
  • Создать дополнительный индекс: Установка неосновного индекса исключительно для столбцаchange_event_id создает копию этого столбца на страницах индекса. Этот индекс можно сканировать значительно быстрее, чем страницы данных. Проверьте план объяснения после создания, чтобы подтвердить его использование.

Дополнительный совет:

Чтобы еще больше повысить производительность, рассмотрите возможность изменения столбцаchange_event_id на bigint unsigned. Этот шаг предотвращает отрицательные значения, а также может упростить обработку.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3