![]() |
|
Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Добрый день!
Почему-то в одном из индексов (`user_id`) слишком много уникальных значений, хотя реально их 33.
Надо из-за этого беспокоиться?
Неактивен

Это может приводить к выбору неоптимального порядка исполнения запросов JOIN. Попробуйте
Неактивен
Отредактированно Kot666 (03.01.2022 20:11:37)
Неактивен

А какая версия MySQL? Если таблица относительно небольшая, можно перестроить индексы такой командой:
Неактивен
Отредактированно Kot666 (03.01.2022 22:03:59)
Неактивен

Возможно, Вы попали на багу алгоритма оценки Cardinality. Баги такого типа уже были. Если можете изготовить дамп, на котором проблема воспроизводится, то можно сообщить о баге на https://bugs.mysql.com
Это именно бага MyISAM? Изменится ли поведение, если заменить ENGINE на InnoDB?
Неактивен
rgbeast написал:
Возможно, Вы попали на багу алгоритма оценки Cardinality. Баги такого типа уже были.
Да, именно. Я прочёл про этот баг, поднял ВМ, установил MariaDB 10.3, импортировал базу, изменил "engine" на "Aria".
Проблема осталась. Написал сюда. ![]()
Неактивен
Действительно стало "получше", но не точно. При обратной конвертации всё вернулось. ![]()
Отредактированно Kot666 (04.01.2022 03:43:12)
Неактивен

Cardinality в статистике индексов - оценочное значение. Точный расчет занимал бы время при каждом апдейте таблицы, поэтому нормой считается правильное по порядку величины значение. Значение в MyISAM отличается на 3-4 порядка, поэтому такое поведение нужно считать багой.
Неактивен
Меня беспокоит, не деградирует ли от этого скорость выборок.
Из первого поста:
Неактивен

Статистика индексов влияет только на план исполнения. Когда план выбран, скорость исполнения не должна зависеть от статистики.
А какой именно запрос стал быстрее работать? Странно, что скорость исполнения изменилась, а план тот же.
Неактивен
rgbeast
К сожалению не смог воспроизвести, удаляя/добавляя индексы, а "slow"-log уже стёрся. Точно не могу сказать и не хочу случайно обмануть.
Если смогу воспроизвести, то обязательно напишу.
Неактивен
Страниц: 1