У меня есть база данных Postgres 9.1, которая содержит информацию о погоде.Набор данных состоит приблизительно из 3,1 млн. Строк.
Загрузка данных из файла CSV занимает около 2 минут, а для создания многоколоночного индекса - чуть меньше.
Каждые 6 часов, которые мне нужныполностью обновить набор данных.В настоящее время я думаю, что я бы импортировал новый набор данных в другое имя базы данных, например «weather_imported», и после завершения импорта и создания индекса я бы отбросил исходную базу данных и переименовал импортированную базу данных.
ВТеоретически, клиенты будут продолжать запрашивать базу данных во время этой операции, хотя, если это будет иметь неприятные последствия, я мог бы, вероятно, договориться о том, чтобы клиенты молча игнорировали несколько ошибок.*
Будет ли эта стратегия работать?
Если клиент во время выполнения запроса находился в процессе выполнения запроса, я предполагаю, что база данных не будет завершенасбросить до завершения запроса - верно?
Что если запрос произошел между моментом сброса БД и переименованием?Я предполагаю, что «база данных не найдена».
Есть ли лучшая стратегия?