Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос о синхронизации баз данных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: MySQL, синхронизация данных
pioneer
Отправлено: 01 Апреля, 2016 - 00:23:33
Post Id


Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Доброго времени суток, уважаемые форумчане!

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

Как Вы считаете, какой из предложенных способов (или предложите свой вариант) проявит себя в работе лучше? Какой будет более эффективным? Что еще следует учесть? Конечно, самый главный критерий в этой задаче - это 100%-ая гарантия в синхронности данных, а негативные факторы - возможность "перегруза" одного из (или даже обоих) серверов, дальность расстояния между ними (и как следствие - прямо пропорциональное немалое время ожидания), другие форс-мажоры и мое незнание этой темы Хм , поскольку с такой задачей сталкиваюсь в первый раз.

За любую помощь, дельные советы и активное обсуждение заранее спасибо! Улыбка
 
 Top
T1grOK
Отправлено: 01 Апреля, 2016 - 12:34:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Июнь 2013  


Помог: 7 раз(а)




Репликация


-----
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
 
 Top
Contr
Отправлено: 01 Апреля, 2016 - 15:14:28
Post Id



Частый гость


Покинул форум
Сообщений всего: 202
Дата рег-ции: Окт. 2011  
Откуда: с Марса


Помог: 1 раз(а)




Делать дамп одной таблицы, сливать данные во вторую раз в день
 
 Top
armancho7777777 Супермодератор
Отправлено: 01 Апреля, 2016 - 16:45:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




pioneer
Найдите книжку "MySQL. Оптимизация производительности, 2-е издание".
Глава 8: Репликация (стр. 427)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB