У меня есть большая таблица в mysql.It имеет 13 миллионов строк.Почему mysql select count (distinct user_id) возвращает неверный номер?
Версия Mysql - 5.7.10.
Структура таблицы, как показано ниже:
create table table_name (
user_id varchar(20) not null,
item_id varchar(20) not null
);
1. Первый SQL является:
select count(distinct user_id) from table;
Результат: 760.000
2. Второй SQL является:
select count(1) from (select user_id from table group by user_id) a;
Результат: 120.000
идентификатор_пользователя не является нулевым для каждой строки.
И, правильный номер - 120 000. Почему первый sql получает неправильный номер?
Затем я запускаю первый sql в улье и spark-sql, результатом является 120 000.
Итак, это ошибка mysql или что-то может быть установлено, чтобы все исправить?
Спасибо!
Обновление: Я пробую это на другом ПК, результат первого sql составляет 120 000. В этот раз получите правильный номер. Версия для MySql - 5.6.26. Итак, может быть, это ошибка 5.7.10.
Там было 1-2 из этих ошибок в прошлом, [например, этот]] (http://bugs.mysql.com/bug.php?id=70038). Возможно, еще один пример подобной ошибки и/или регрессии? –
MyISAM или InnoDB ?? – Strawberry
Оба они попробовали. Сначала это InnoDB, затем я перехожу к MyISAM. Результат первого sql всегда неверен. –