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

Эффективный эффект объединения таблиц из разных баз данных

У меня есть веб-сайт с использованием базы данных с именем let say "site1" . Я планирую разместить другой сайт на том же сервере, который также будет использовать некоторые таблицы из "site1" .

Так что я должен использовать три разные базы данных, такие как "site1" (для первых данных сайта), "site2" (для вторых конкретных данных сайта) и "общий" (для общих таблиц). В котором будут заключены соглашения между базовыми базами данных и сайтами site1 и site2. Или я должен поместить все таблицы в одну базу данных?

Что лучше всего делать? Как выступления различаются в каждой ситуации? Я использую MySQL. Итак, как ситуация особенно для MySQL?

Спасибо заранее...

4b9b3361

Ответ 1

Я могу говорить из недавнего личного опыта. У меня есть несколько старых запросов mysql в некотором PHP-коде, который отлично работал с относительно небольшой базой данных, но по мере того, как он рос, запрос становился все медленнее и медленнее.

У меня есть freeradius, работающий с mysql в своей собственной базе данных, а также другое приложение php для управления, которое я написал. Таблица freeradius составляет > 1,5 миллиона строк. Я пытался объединить таблицы из базы данных приложений в базу данных freeradius. Могу сказать наверняка, что 1,5 миллиона строк слишком много. Запуск некоторых запросов полностью заблокировал мое приложение. Мне пришлось переписывать часть моего приложения php, чтобы делать что-то по-другому (т.е. Не присоединяться к двум таблицам из другой базы данных). Я также проиндексировал таблицу учета радиуса в некоторых ключевых полях и оптимизировал некоторые запросы (инструкция mysql EXPLAIN замечательна, чтобы помочь с этим). Сейчас все намного быстрее.

Я определенно буду колебаться, чтобы присоединиться к 2 таблицам из разных баз данных в будущем, если это действительно действительно необходимо.

Ответ 2

С точки зрения производительности, не будет никакой разницы. Просто держите свои индексы на месте, и вы не заметите, используете ли вы одну БД или несколько БД.

Помимо производительности, есть два небольших значения, о которых я могу думать: 1. У вас не может быть внешних ключей через БД. 2. Разбиение таблиц в БД на основе их использования или на основе приложений может помочь вам легко управлять разрешениями.