我正在使用 ImpressPages CMS v 2.6 运行三个不同的网站。ImpressPages 建立在 PHP 5.3 和 MySQL 5 上。每个网站大约有 33 个 MySQL 表,数据库使用 MyISAM 引擎。
我有两个配置选项。第一:我可以为每个站点创建 3 个不同的数据库。第二:我可以为每个站点使用具有不同 table_prefix_ 的单个数据库。
我对以上两个选项感到困惑。哪个选项可以节省我的共享主机方案的资源,并且不会影响网站性能。
我正走过来数据库数量限制问题,它指出数据库数量没有限制,但我的问题是拥有多个数据库或在一个数据库中拥有多个表,哪一个是更好的选择而不影响性能?
答案1
尽管在大多数情况下性能相同,但多个数据库比多个表更好。这是因为您可以更轻松地复制和转储单独的数据库,并且影响其他数据库的可能性更小。
答案2
这两种方法对性能的益处都很小(如果有的话)。
然而,在安全性方面,您可以为每个网站设置自己的 MySQL 用户,并仅授予相应数据库的权限。这样,如果(最坏的情况)某个网站遭到入侵,攻击者可以访问您的 MySQL 密码,攻击就会得到一定程度的控制。
有一种说法是,如果他们有文件系统访问权限,他们就可以导航到其他网站并获取他们的密码,但至少你遵守了合理的安全原则。
我建议唯一偏离此情况的情况是,如果您的共享主机的数据库数量被限制(大多数只允许您在其入门包中使用少量数据库)。
据我所知,没有真正的参考资料可以支持这一点,但如果算的话,我使用上述方法运行了 16 个 WordPress 网站。