Долго работает выборка данных - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5