У меня есть две очень большие таблицы, содержащие миллионы записей, и они содержат похожие записи. Таким образом, TableA может иметь другую структуру столбцов, чем TableB, для хранения одних и тех же данных, но и TableA, и TableB содержат столбец для уникального отпечатка записи. Каков наилучший способ узнать общие записи в Таблице A и Таблице B, которые содержат один и тот же отпечаток? Подобные вопросы задавались здесь несколько раз здесь, но здесь есть изменение.
Скажем, я храню pk общих записей в TableC(pk_a, pk_b, fingerprint)
, которые обозначают общий кортеж в TableA и TableB. Теперь TableC необходимо обновлять всякий раз, когда записи добавляются / удаляются из TableA или TableB.
Мое решение для первой части состоит в том, чтобы взять соединение TableA и TableB на идентичном отпечатке пальца и добавить его в TableC.
Для второй части запросите у TableC аналогичный отпечаток, а затем обновите TableC, если найдены какие-либо совпадения. Если совпадений не найдено, отсканируйте таблицу B (скажем, запись была добавлена в таблицу B), чтобы найти отпечаток, а затем обновите TableC.
Но это довольно интуитивно и наивно. Я чувствую, что это можно сделать лучше.
Есть мысли у кого-нибудь?