Долго работает выборка данных - MySQL
Формулировка задачи:
Доброго времени суток, господа!
У меня есть база данных, 8 полей:
id
(int - уникальный, счётчик
),p1
(smallint
),p2
(smallint
),p3
(smallint
),p4
(smallint
),p5
(smallint
),p6
(smallint
),dt
(date
). в таблице порядка 5 000 000 записей. Каждую неделю нужно добавлять порядка 50 000 записей, из некоторого файла. При этом вектор(p1, p2, p3, p4, p5, p6, p7, dt)
должен быть уникален. Для этого я считываю из файла строки, которые потом вставляю в БД. Перед вставкой я ищу, есть ли такая строка уже в таблице,SELECT
'ом. В итоге это получается 50 000 селектов, каждый из который занимает около 2х секунд, это ОЧЕНЬ долго. можно ли как-нибудь ускорить это дело? Спасибо, ребята.Решение задачи: «Долго работает выборка данных»
textual
Листинг программы
INSERT INTO табличка SELECT * временнаяТабличка WHERE табличка.p1<>временнаяТабличка.p1 AND табличка.p2<>временнаяТабличка.p2 AND табличка.p3<>временнаяТабличка.p3 AND табличка.p4<>временнаяТабличка.p4 AND табличка.p5<>временнаяТабличка.p5 AND табличка.p6<>временнаяТабличка.p6 AND табличка.p7<>временнаяТабличка.p7 AND табличка.dt<>временнаяТабличка.dt
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д