2010-08-13 2 views
0

У меня есть база данных MySQL с большим количеством, которая содержит информацию о погоде. БД составляет около 3,5 миллионов строк и 486 МБ.Периодически заменяя запущенную базу данных MySQL

Я получаю обновление этих данных каждые 6 часов, в виде файла дампа mysql, который я могу импортировать. Требуется более 2 минут для импорта данных и, вероятно, аналогичного количества времени для создания индекса.

Любые мысли о том, как я могу импортировать эти данные, сохраняя при этом доступность БД и не теряя отзывчивость? Моя первая мысль состояла в том, что у двух есть две базы данных в одном экземпляре MySQL. Я бы отключил DB1 и загрузил данные в DB2, а затем переключился. Тем не менее, я обеспокоен тем, что процесс загрузки сделает DB1 невосприимчивым (или значительно медленным).

Итак, моя следующая мысль состоит в том, что два разных экземпляра MySQL работают на разных портах. Пока экземпляр DB 1 обслуживает запросы, экземпляр DB 2 может быть загружен следующим набором данных. Затем в следующем запросе код переключается на DB2.

Кажется, что это сработало бы для меня, но я хотел проверить с некоторыми, кто пробовал подобные вещи в прошлом, чтобы увидеть, были ли какие-либо «пропахи», которых я отсутствовал.

Мысли?

ответ

1

Имейте две базы данных и переключайтесь между ними после завершения импорта каждый раз.

Загрузка одной базы данных не должна заставлять другую базу данных не отвечать на запросы. 486MB не слишком велик, чтобы все это поместилось в памяти пару раз - в зависимости от того, нахожусь ли вы на небольшом виртуальном сервере.

Но даже при этом два экземпляра MySQL на одном сервере не должны представлять каких-либо различий в производительности, чем две базы данных в одном экземпляре, за исключением того, что два экземпляра могут фактически занимать больше памяти и быть более сложными для настройки.

+0

К сожалению, на сервере у нас нет 475 МБ, поэтому память будет проблемой, но приятно слышать, что два БД не будут существенно отличаться по производительности, чем два экземпляра. – wadesworld

Смежные вопросы