Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 21.02.2011
Сообщений: 11
1

Оптимизация запроса с большим объемом данных

27.10.2015, 20:36. Показов 788. Ответов 1
Метки нет (Все метки)

Добрый день.

Прошу помощи у профессионалов по ускорению запроса для Mysql
Есть таблица email_subscribe с набором значений:

PHP
1
2
3
4
5
6
id      ekey
1       ключ1
2       ключ1
3       ключ2
4       ключ1
5       ключ1
Необходимо получить дубликаты по полю "ekey", которые в дальнейшем можно удалить

Сделал 2 запроса, они выводят, список нужных дублей по полю "ekey", которые можно потом удалить...

PHP
1
2
3
SELECT t.* FROM email_subscribe t  
LEFT JOIN (SELECT id FROM email_subscribe GROUP BY ekey) as t2 ON t.id=t2.id  
WHERE t2.id IS NULL
PHP
1
2
select * from email_subscribe 
where id not in (SELECT id FROM email_subscribe GROUP BY ekey)
Результат двух запросов правильный и идентичный:
PHP
1
2
3
4
id      ekey
2       ключ1
4       ключ1
5       ключ1

Проблема в том, что при больших объемах данных (если в таблице email_subscribe будет 700 000 записей) эти запросы очень долго выполняются, не могу дождаться завершения запроса на локальном хосте при ~160 000 строк

Индексы по нужным полям таблицы email_subscribe поставил

Привожу explain запроса:
PHP
1
2
explain select * from email_subscribe
where id not in (SELECT id FROM email_subscribe GROUP BY ekey)
Привожу explain запроса:
PHP
1
2
3
explain SELECT t.* FROM email_subscribe t
LEFT JOIN (SELECT id FROM email_subscribe GROUP BY ekey) as t2 ON t.id=t2.id  
WHERE t2.id IS NULL
В чем причина длительного выполнения обоих запросов?
0
Миниатюры
Оптимизация запроса с большим объемом данных   Оптимизация запроса с большим объемом данных  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2015, 20:36
Ответы с готовыми решениями:

Что почитать, чтобы научиться строить базы с большим объемом данных, больше 1мил записей?
Что почитать, чтобы научиться строить базы с большим объемом данных, больше 1мил записей?

Алгоритм работы с большим объемом данных в Oracle
День добрый! Подскажите как правильно организовать работу с большим кол-вом данных? Ситуация...

Работа с большим объемом данных
Всем привет! Всегда создавал коллекцию List<List<xxx>>, заносил в нее данные из txt файла, а потом...

Работа с большим объёмом данных
Приветствую всех! На днях столкнулся с такой проблемой: необходимо отправить на сервер файл...

1
Эксперт PHP
933 / 691 / 235
Регистрация: 01.02.2015
Сообщений: 1,848
27.10.2015, 22:07 2
SQL
1
2
3
4
SELECT ekey, COUNT(*)
FROM email_subscribe
GROUP BY ekey
HAVING COUNT(*) > 1
Причина в рекурсии, каждая запись проверяется со всеми 700 000 * 700 000 итераций
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2015, 22:07

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Работа с большим объемом данных
Всем привет! Работа с большим объемом данных заставляет задуматься над всевозможными способами...

работа с большим объемом данных
большим я называю от 300000Rx50C судя по информации из диспетчера задач происходит накопление...

Работа с большим объемом данных
Имеется загруженное изоображение с помощью opencv. Задача: вывести цвета изображения с из...

Работа с большим объемом данных
Коллеги, подскажите по такому вопросу. Есть выборка, несколько миллионов записей. Каким образом...

POST запрос с большим объёмом данных
Необходимо передать из одной HTML страницы большой массив данных на сервер. Количество данных...

QtSerialPort Работа с большим объемом данных
Добрый день. Я пишу приложение, которое работает с последовательным портом при помощи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.