Подтвердить что ты не робот

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

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

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

Есть ли какая-либо потеря в производительности так?

4b9b3361

Ответ 1

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

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

Ответ 2

Это приведет лишь к заметной проблеме, если вы пытаетесь использовать несколько операторов выбора для данных в каждой базе данных. Было бы лучше использовать некоторые внешние ключи, а затем использовать один запрос соединения для получения пользовательских данных и связанного с ними содержимого пользователя. Вы можете префикс имен схем в своих таблицах в инструкции 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;