Выполнение запросов через две mysql базы данных по тому же серверу?

Там какая-либо производительность поражена от запросов более чем двух (или больше) базы данных по тому же серверу MySQL, по сравнению с тем, если те базы данных были объединены в одну?

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

Есть ли потеря в производительности, делающей его тот путь?

12
задан marc_s 9 January 2013 в 20:40
поделиться

2 ответа

Нет. В MySQL "базы данных" - это, по сути, просто каталоги, которые никак не влияют на способ хранения данных или запросов.

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

18
ответ дан 2 December 2019 в 07:20
поделиться

Это создаст заметную проблему, только если вы попытаетесь использовать несколько операторов select для данных в каждой базе данных. Лучше использовать несколько внешних ключей, а затем использовать один запрос join для получения данных пользователя и связанного с ним пользовательского контента. В операторе select join можно использовать префикс имен схем таблиц.

Пример будет выглядеть примерно так:

SELECT a.user, b.user_content
    FROM database1.table1 AS a
    LEFT JOIN database2.table2 AS b
        ON a.user = b.user_id;
3
ответ дан 2 December 2019 в 07:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: