我正在开发一个包含许多子域的网站。
它有博客模块,管理系统等等。我在各个网站分享了这个问题,但无法得到正确的答复。
问题是我应该为所有模块使用一个数据库,这意味着我的数据库将有近100个表。这种方法是否合适,还是应该为每个模块创建单独的数据库?
答案 0 :(得分:2)
嗯,这并不重要。
如果您将innodb与单个数据文件一起使用(未启用innodb_file_per_table设置),则无论如何所有数据都将存储在单个文件中。
对于每个表模式的innodb单独文件或myisam表引擎,一个或多个数据库之间的唯一区别实际上是存储数据库文件的目录。除非目录(数据库)位于具有不同速度的不同存储设备中,否则它们的性能将相同。
将一些表保存在不同的数据库中有两个原因:
安全性:mysql不支持基于角色的访问控制。因此,如果有一组表只能由特定用户组访问,那么如果这些表位于不同的数据库中,则访问控制更易于管理。
如果您提到的某些模块碰巧使用相同的表名,那么您必须将它们移动到单独的数据库,或者您需要修改代码和表名以避免错误。
答案 1 :(得分:0)
设计系统没有正确或错误的方法。各种技术的优点和缺点。我通常在Oracle和SQL Server中工作,因此我不得不查找MySQL的一些术语。根据我的研究,在MySQL中,数据库与改变事物的模式同义。在为任何供应商规划物理设计时,我会考虑这些事情:
希望这有帮助。