Мне нужно посчитать, сколько раз число из таблицы2 встречается между числом в диапазоне table2.a и table2.b
т.е. мы хотим знать, сколько раз у нас это: a
Я запустил следующий запрос:
UPDATE table2
SET occurrence =
(SELECT COUNT(*) FROM table1 WHERE start BETWEEN table2.a AND table2.b);
table2
ID a b occurrence
1 1 10
2 1 20
3 1 25
4 2 30
table1
ID start col1 col2 col3
1 1
2 7
3 10
4 21
5 25
6 27
7 30
table2 as
- 3 указателя на a, b и вхождение
- 1567 строк (поэтому мы выберем COUNT (*) поверх table2 1567 раз ..)
- ID столбца как PK
table1 as
- 1 индекс при старте
- 42 000 000 строк
- Начало столбца было "упорядочено по началу столбца"
- ID столбец как PK
==> 2/3 времени заняло 2,5 часа. Мне нужно ускорить это ... какие-либо предложения? :)