【发布时间】:2012-01-16 09:53:42
【问题描述】:
我正在创建一个使用 MySQL 和 PHP 的应用程序。我当前的网络托管服务提供商的 MySQL 数据库大小限制为 1 GB,但我可以创建许多 1 GB 的数据库。即使能够找到另一个允许更大数据库的网络托管服务提供商,我想知道更大的数据库如何影响数据完整性和速度?就磁盘大小而言,保持数据库较小是否更好?换句话说,存储来自数千个用户的相同数据(所有文本)的最佳实践方法是什么?我是数据库设计和规划的新手。最终,我会想象一个包含来自数千个用户的数据的单一数据库会变得效率低下,并且最好将数据分布在较小的数据库中。我说的对吗?
在相关说明中,我的应用程序如何知道何时创建另一个表(或切换到另一个手动创建的表)?例如,如果我有 1 个数据库,其中填充了 1 GB 的数据,我希望我的应用程序继续工作而不会出现任何服务延迟。如何控制从 1 个表到第二个新创建的数据库的数据输入?
类似地,如果一个用户在 2011 年加入该网站并创建了 100 条信息记录,而其他成千上万的用户也这样做了,那么 1 GB 的数据库就会被填满。稍后,该原始用户添加了另外 100 条在另一个 1 GB 数据库中创建的记录。我的 PHP 代码如何知道要查询 2 组 100 条记录的数据库?这会在 MySQL 端以某种方式自动管理吗?是否需要在 PHP 代码中管理 IF/THEN/ELSE 语句?这是一些网络托管服务提供商提供的服务吗?
【问题讨论】:
-
这是一个非常广泛的问题。关于您的第一段的书籍已经写过......
-
1GB 是一大堆用于文本存储的空间,开始输入二进制数据,一切都结束了。
-
您应该找到另一个允许您保留更大数据库的托管服务提供商。 1GB 甚至不是一个大型数据库。正如您在第三段中所指出的,分割成 1GB 的块只会导致精神错乱。
-
另外,我注意到“……存储相同的数据……”。那可能是个问题。如果数据都相同,则应该只存储一次。您应该阅读包括规范化在内的数据库设计。您的问题太宽泛,无法在 SO 上合理回答。回答这个问题至少需要一整本书。
标签: php mysql database database-design database-connection