Я пытаюсь подобрать оптимальный способ обновления таблицы.
Пример:
Есть две таблицы trg и src:
В какой то момент времени, из таблицы src были удалены строки, ровно 50%. Чтобы синхронизировать trg из src, как вариант, можно выполнить один из двух способов:
Пример:
Есть две таблицы trg и src:
CREATE TABLE src (pmid INT PRIMARY KEY, str1 VARCHAR(MAX), str2 VARCHAR(MAX), ...., str101 VARCHAR(MAX)); CREATE TABLE trg (pmid INT PRIMARY KEY, str1 VARCHAR(MAX), str2 VARCHAR(MAX), ...., str101 VARCHAR(MAX));Обе таблицы одинаковы и содержат одни и теже данные, но src является источником данных для trg.
В какой то момент времени, из таблицы src были удалены строки, ровно 50%. Чтобы синхронизировать trg из src, как вариант, можно выполнить один из двух способов:
1 вар.: TRUNCATE TABLE trg; INSERT INTO trg SELECT src.* FROM src; 2 вар.: DELETE trg WHERE NOT EXISTS(SELECT id FROM src WHERE src.pmid = trg.pmid);я думаю, что первый вариант будет выгодным, если в таблице src будет удалено 90% строк, а второй, когда в таблице будет удалено только 10%. Но вопрос в том, при каком количестве удаленных строк (примерно), оба варианта одинаково весят? И что на этот ответ влияет?