我正在开发一个包含许多子域的网站。

它具有博客模块,管理系统等。 我已经在各个站点共享了这个问题,但是无法得到正确的答复。

问题是我是否应该对所有模块使用一个数据库,这意味着我的数据库将有近100个表。 这种方法合适吗?还是应该为每个模块创建单独的数据库?

#1楼 票数:2 已采纳

好吧,这并不重要。

如果将innodb与单个数据文件一起使用(未启用innodb_file_per_table设置),则所有数据无论如何都将存储在单个文件中。

在每个表模式下使用innodb单独文件或使用myisam表引擎时,一个或多个数据库之间的唯一区别实际上是数据库文件的存储目录。 除非目录(数据库)以不同的速度位于不同的存储设备中,否则它们的性能将相同。

将某些表保留在不同的数据库中可能有两个原因:

  1. 安全性:mysql不支持基于角色的访问控制。 因此,如果存在一组只能由特定用户组访问的表,那么如果这些表位于不同的数据库中,则访问控制将更易于管理。

  2. 如果您提到的某些模块碰巧使用了相同的表名,那么您将不得不将它们移至单独的数据库,或者您需要修改代码和表名以避免错误。

#2楼 票数:0

设计系统没有正确或错误的方法。 只是各种技术的优缺点。 我通常在Oracle和SQL Server中工作,因此必须查找MySQL的一些术语。 根据我的研究,在MySQL中,数据库与更改事物的架构同义。 在为任何供应商计划物理设计时,我会考虑以下因素:

  • 安全性-是否所有子域都需要互相读/写? 用户如何得到保护? 选择一个或多个架构会影响架构和用户安全性的易于管理和控制。
  • 增长-某些子域的增长速度是否快于其他子域? 如果是,我会考虑将它们分开以考虑不同的增长率。
  • 组织-如果将不同的子域分开,在实践中是否更容易识别它们? 如果不分隔它们,请使用严格的命名约定,以便可以轻松标识一个子域中的对象。
  • 链接-从另一个架构/数据库访问另一个架构/数据库有多容易?

希望这可以帮助。

  ask by Alen translate from so

未解决问题?本站智能推荐:

3回复

Mysql一个大数据库或小许多表

我们的应用程序将为每个用户创建动态表单。 我们正在考虑两种方法 a)我们将所有用户表单数据存储在单个表中作为键值对,然后使用数据透视表技术获取数据并进行过滤,但我觉得可能真的是巨大的资源消耗 b)为每个表单用户创建适合其设计的创建/设计表,这里我们没有必须转向,我们获得了mysql的
2回复

MySql数据库设计:一个大表还是许多小表?

我正在设计数据库,想知道什么是最好的方法。 假设我有一个用户表(标准字段包括firstname,lastname,email等),每个用户都有不同币种的余额(usd,eur,gbp等)。 对于每个货币,都有几个字段(例如,可用金额,预留金额或类似内容)。 至少会有30种不同的货币。
1回复

MySQL数据库性能选择大/巨大的表

我正在使用MySQL数据库,必须在大型/大型表(例如267,736行和30列)上执行一些选择查询。 查询详情: 只选择查询(表中的数据是固定的,绝不是更新,插入或删除) 选择所有列的查询(业务要求) 主要限制行数(LIMIT 10到所有行 - >用户可以选择)
5回复

一个大的MySQL数据库还是一千个小的SQLite数据库?

我正在研究基于Web的组织工具。 我并不瞄准与美妙的Basecamp相同的市场,但让我们说用户和数据交互的方式看起来一样。 我将不得不处理用户自定义,文件上传和图形调整。 每个帐户都有一个论坛。 我想提供一种轻松备份每个帐户的方法。 我一直在思考如何创建一个合理的架构,并且已经过训
3回复

数据库架构-一个大或很多小

我编写了一个php + Mysql Web应用程序来存储教堂的家庭/人信息。 我最好为每个教堂拥有1个数据库和1个应用程序安装,或者设计具有1个安装和1个数据库的应用程序,以容纳将要注册该服务的所有教堂。 假设数百个教堂可以在每个教堂中潜在地有数百人使用该系统。 可以说有500,000个人
3回复

巨大的mysql数据库的可靠备份?

我有200GB / 400Mrows的mysql / innodb数据库 - 远远超出我发现的合理范围。 一个令人惊讶的问题是恢复备份。 mysqldump生成巨大的sql文件,他们需要大约一个星期的时间才能导入到一个新的数据库中(试图让它变得更快,如更大/更小的事务,在导入期间关闭密钥等
3回复

打开巨大的MySQL数据库

我想在我的系统上打开一个巨大的SQL文件(20 GB),我尝试了phpmyadmin和bigdump,但似乎bigdump不支持超过1 GB的SQL文件,是否有任何脚本或软件可以用来打开,查看,搜索和编辑它。
2回复

查询巨大的MySQL数据库

我有一个有两列的MySQL DB。 '键'和'使用'。 Key是一个字符串,Used是一个整数。 是否有一种非常快速的方法来搜索特定的密钥,然后在具有6000000行数据的巨大MySQL数据库中返回Use。