В наших производственных системах MySQL у нас есть некоторые запросы, выполнение которых обычно занимает менее 2 секунд, но иногда они выполняются более минуты. Каждый раз, когда один из этих запросов выполняется долго, мы проверяем индексацию и обнаруживаем, что кардинальность упала в одном и том же поле VARCHAR(25). Мы запускаем MySQL как кластер мастера с несколькими подчиненными, и мы обнаружим, что количество элементов только на этой медленной системе уменьшилось, значение останется высоким на всех других серверах. Когда значение упадет, оно упадет примерно с 20-30 тысяч (высокое значение) до нескольких сотен. Выполнение команды ANALYZE TABLE исправляет кардинальность и доводит резервную копию до 20k-30k, и запрос снова выполняется быстро.
Я начал отслеживать количество элементов во всех таблицах, чтобы увидеть, как это значение меняется со временем. Я понимаю, что количество элементов будет увеличиваться по мере добавления новых данных, и я ожидаю, что оно будет уменьшаться по мере удаления записей, но в этой таблице очень редко удаляются записи, но значение будет увеличиваться и уменьшаться каждый раз, когда я смотрю на нее.
MySQL 5.5.8 InnoDB
ЦенОС 5.7
Любые идеи о том, что я должен искать? COUT(*) = 402259