Доброго времени суток, уважаемые форумчане!
Есть две идентичные таблицы (назовем их А и В) в двух совершенно разных БД MySQL, сервера которых расположены в разных странах (достаточно далеко друг от друга). В перспективе обе БД будут работать с высоко нагруженными сайтами. В таблицу В в течение дня добавляются многочисленные данные, которые нужно в определенное время (например, в 20:00) синхронизировать с таблицей А (данные, которых еще нет - добавить, существующие - обновить, удаленные - также удалить). Какие в этом подходе особенности: работа с выборками больших объемов данных, необходимость создания дополнительных полей-статусов у строк, информирующих об их синхронизации (при этом при удалении в таблице В сами строки удаляться не должны, а им лишь необходимо приписывать статус "удален"), и, возможно, еще некоторые другие не очень приятные особенности. По идее существует еще один вариант: разработать API на том сайте, где находится таблица А, и при добавлении/редактировании/удален ии данных пользователем (через некий подразумеваемый личный кабинет) на втором сайте (с таблицей В) слать запросы к сайту А (мол, вот такую-то запись добавь к себе, а вот эту - удали, и т.д.)
Как Вы считаете, какой из предложенных способов (или предложите свой вариант) проявит себя в работе лучше? Какой будет более эффективным? Что еще следует учесть? Конечно, самый главный критерий в этой задаче - это 100%-ая гарантия в синхронности данных, а негативные факторы - возможность "перегруза" одного из (или даже обоих) серверов, дальность расстояния между ними (и как следствие - прямо пропорциональное немалое время ожидания), другие форс-мажоры и мое незнание этой темы , поскольку с такой задачей сталкиваюсь в первый раз.
За любую помощь, дельные советы и активное обсуждение заранее спасибо!
|