В общем у меня есть две базы.
1) cachebase - Хранится большое количество пользователей, должностей и мест работы. Около полумиллиона
2) messagebase -База на которой крутится что-то наподобие Skype приложения. Самописное.
Собственно данные по пользователям сейчас находятся в cachebase, а их разговоры с указанием их id в messagebase.
Я сейчас реализовал join из messagebase в cachebase с помощью. dblink
Пример запроса в базу messagebase
SELECT u.id, u.lastname, u.firstname, u.secondname FROM dblink( 'dbname=cachebase', 'SELECT id, lastname, secondname, firstname FROM tab' ) AS u(id int, lastname text, secondname text, firstname text) LEFT JOIN message AS m ON (u.id = m.id) WHERE u.lastname = 'Роман'
Вот встал вопрос. Что лучше, сделать реплику нужный таблиц из cachebase в messagebase или использовать dblink ? Какие минусы в моем решении, как плюсы в реплике?
P.s. По реплике пока я понял что плюс будет в том, что скорость выполнения запросов будет больше. Но какие минусы я получу, при использовании реплики?
Повышенную нагрузку на
Повышенную нагрузку на сервер. При dblink сам запрос исполняется на втором сервере, а на первый приходят результаты. В случае обращения к локальным таблицам, соответственно и выборка из них будет делаться здесь же.