Мне нужно удерживать несколько пар по 70000 строк и выполнять сравнение различий, например, операций между ними, используя оператор минус. В любое время возможны сравнения (сканирование таблицы).
В настоящее время у меня есть одна таблица с таким дизайном:
- первичный ключ (секвенированный)
- внешний ключ для идентификации набора
- ключ для идентификации набора № 1 или набора № 2
- тогда данные здесь мне нужно минус против
Данные будут выглядеть примерно так
| PK | FK | Key | Data |
| 1 | 1 | Left | Some data |
| 1 | 1 | Left | Diff data |
| 1 | 1 | Right | Some data |
Мой запрос будет:
SELECT data
FROM diffTable
WHERE pk = 1
AND fk = 1
AND key = 'Left'
MINUS
SELECT data
FROM diffTable
WHERE pk = 1
AND fk = 1
AND key = 'Right'
Боюсь, что при полном сканировании таблицы будут монополизированы ресурсы и пострадают последующие вставки и минус.
Как мне оформить столы и почему?