0

我必须决定是否应该更改我的网络主机,因为我当前的主机不支持mysqli。目前我通过保存数据文件和使用fopen, fwrite, fread. 我正在考虑使用连接池将数据保存在 mysql 中。除了安全性(坦率地说,这并不是什么大问题)之外,mysql 中的数据搜索要容易得多。然而,用户每隔几秒就会访问一次 mysql 数据库,因此连接池是必须的,处理时间也是如此。

我已经计算过,没有连接池,mysql中的处理时间比文件操作慢很多倍。我想知道连接池和文件操作之间的延迟差异,以及连接池是否比通过 php 进行文件操作快得多。

如果我选择连接池,主机服务器上的处理负载会有什么不同。

提前致谢。

4

3 回答 3

2

在大文件中查询和操作数据可能会比没有连接池的 mysql 更慢、更乏味。还有你必须处理的文件锁定、并发问题。

无论如何,尽量不要做任何过早的优化。使用适当的数据库,然后从那里收集性能统计信息。仅在必要时进行优化。

于 2013-04-01T08:03:11.243 回答
0

每次用户从 Web 服务器请求特定资源时,PHP 脚本都会执行,然后终止。因此脚本不能共享资源,因此 PHP 中没有连接池;一旦脚本到达 EOF,apache 将释放所有资源。

编辑,至于您的实际问题,几乎不可能给出一个更快的通用答案,这取决于太多参数,例如磁盘类型、网络连接、服务器和数据库之间的跃点等。你会必须对不同的方法进行基准测试并将结果相互比较,以获得针对您的特定设置的明确答案。

在搜索类似主题时我发现了这个,它提供了关于 PHP 中的连接池(PHP中的连接池)的信息。

于 2013-04-01T07:44:28.523 回答
0

恐怕你的假设都是错误的。

首先,将文件与数据库进行比较。从来没有这样的问题。世界上所有的网络程序员都已经在使用各种数据库,无论是否使用连接池。从几MB的数据大小开始,数据库是唯一的解决方案。

第二,关于连接池。至少 90% 的站点在没有任何连接池的情况下愉快地工作,每秒甚至可以维持数十个请求。

我不知道你从哪里得到你的计算数字,但恐怕这个来源很不可靠。更好地使用 DB 启动您的站点,而无需连接池。解决您将面临的所有众多问题,将您的网站扩大到一百个在线用户,然后开始考虑连接池。

顺便说一句,如果您当前的主机确实支持 PDO,您甚至不需要移动。由于 PDO 似乎是当今 PHP唯一可靠的 mysql 驱动程序。但甚至不要从 mysqli 开始——它完全无法使用。

于 2013-04-01T08:26:44.730 回答