У меня есть три разных сайта с ImpressPages CMS v 2.6. ImpressPages построен на PHP 5.3 и MySQL 5. Каждый сайт имеет около 33 таблиц MySQL, а базы данных используют движок MyISAM.
У меня есть два варианта конфигурации. Первое: я могу создать 3 разные базы данных для каждого сайта. Во-вторых: я могу использовать одну базу данных с разными table_prefix_ для каждого сайта.
Меня смущают два вышеупомянутых варианта. Какой вариант сэкономит ресурсы на моем плане общего хостинга и не снизит производительность сайта.
Я прохожу вопрос об ограничении количества баз данных, в нем говорится, что нет предела нет. баз данных, но мой вопрос Наличие нескольких баз данных или нескольких таблиц в одной базе данных, какой вариант лучше без снижения производительности?
Несколько баз данных лучше, чем несколько таблиц, хотя производительность в большинстве случаев будет одинаковой. Это связано с тем, что вы можете проще реплицировать и выгружать отдельные базы данных и с меньшей вероятностью повлиять на другие базы данных.
При любом подходе есть небольшое (если есть) преимущество в производительности.
Однако с точки зрения безопасности вы можете настроить каждый сайт с собственным пользователем MySQL и предоставлять разрешения только соответствующей базе данных. Таким образом, если (в худшем случае) сайт будет взломан и злоумышленник получит доступ к вашему паролю MySQL, атака будет в определенной степени сдерживаться.
Есть аргумент, что если у них есть доступ к файловой системе, они могут переходить на другие сайты и получать свои пароли, но, по крайней мере, вы придерживаетесь надежных принципов безопасности.
Единственный раз, когда я бы посоветовал отклониться от этого, - это если вы ограничены определенным количеством баз данных с вашим общим хостом (большинство из них допускают только небольшое количество в своих начальных пакетах).
Нет никаких реальных ссылок, подтверждающих это AFAIK, но я запускаю 16 веб-сайтов WordPress, используя подход, описанный выше, если это важно.