使用PHP应用程序的数据输入管理多个MySQL 1 GB数据库

时间:2011-12-09 01:02:24

标签: php mysql database database-design database-connection

我正在创建一个利用MySQL和PHP的应用程序。我当前的Web托管服务提供商的MySQL数据库大小限制为1 GB,但我可以创建许多1 GB的数据库。即使能够找到另一个允许更大数据库的Web托管服务提供商,我想知道数据完整性和速度如何受到更大数据库的影响?在磁盘大小方面保持数据库较小是否更好?换句话说,存储来自数千名用户的相同数据(所有文本)的最佳实践方法是什么?我是数据库设计和规划的新手。最终,我想象一个包含来自数千个用户的数据的单个数据库将变得低效,并且最佳地将数据分布在较小的数据库中。我有这个吗?

在相关的说明中,我的应用程序将如何知道何时创建另一个表(或切换到另一个手动创建的表)?例如,如果我有一个数据库填充1 GB的数据,我希望我的应用程序继续工作,没有任何服务延迟。如何控制从1个表到新创建的第二个数据库的数据输入?

同样,如果用户在2011年加入该网站并创建了100条信息记录,并且数千名其他用户也这样做,那么1 GB数据库就会被填满。稍后,该原始用户将在另一个1 GB数据库中添加另外100条记录。我的PHP代码如何知道哪个数据库要查询2组100条记录?这会在MySQL端以某种方式自动管理吗?是否需要在PHP代码中管理IF / THEN / ELSE语句?这是一些网络托管服务提供商提供的服务吗?

2 个答案:

答案 0 :(得分:1)

这是一个非常抽象的问题,我不确定通用的stackoverflow是否适合这样做。

无论如何。存储的最佳实践方法是什么?怎么样:在磁盘上的文件中。请记住,数据库只是一个美化的文件,具有花哨的“读取”和“写入”命令。

优化很难,你只能交易东西。 CPU用于内存使用,读写速度,批量数据存储或速度。 (或者获得更好的主机提供商并使您的数据库尽可能大;))

要回答第二个问题,如果您采用数据库方法,则需要设置一些系统,以便在用户满员时将用户从一个数据库“迁移”到另一个数据库。如果达到1GB的80%,则开始迁移用户。

检测数据库的大小是一个棘手的问题。你可以,我想看看磁盘上的RAW文件,看看它们有多大,但也许有更聪明的方法。

答案 1 :(得分:0)

我建议使用SQLite将是您的最佳选择。它支持2TB(2 ^ 41字节)的数据库,最好的部分是它不需要服务器端安装。所以它在任何地方兼容。您只需要一个可以使用SQLite数据库的库。

您也可以选择主机,而无需查看它们支持的数据库和大小。