2012-02-15 51 views
-3

当从数据库中检索数据是更有效的服务器资源总是从数据库中加载数据或将数据写入文件并使用php include语句加载它?或者有没有比这两者更好的选择?什么是更有效的MySQL或包含文件

此外,当从单个表格查询MySQL数据库中的多个特定记录(即ID:1,52,24,24)时,将查询组合成一个查询或将它们分成每个记录一个查询会更有效?

+10

多少数据? ...虽然最好的答案是:尝试并分析它。像这样的东西可能会有很大的不同,这取决于你的设置。 – 2012-02-15 17:19:39

+1

这个问题是WAAAAAY超出此问答网站的范围。有超过9000个事情可能会影响您的配置。就像Pekka在这里所说的那样,尝试一下并分析它。 – 2012-02-15 17:22:18

+1

通常文件系统比DBMS更有效率。但尝试它和配置文件。你会发现很多关于如何在PHP中进行代码分析的教程。关于第二个问题,当然最好使用,例如'WHERE id IN(1,5,27,24)',而不是使用'WHERE id = N'运行四个查询。 – 2012-02-15 17:24:57

回答

1

当从数据库中检索数据时,服务器资源上的数据总是从数据库加载数据或将数据写入文件并使用php include语句加载它,或者有没有比这两者更好的选择?

那么,这取决于很多事情。通常的做法是首先用数据库来处理,如果网站变慢,从缓存开始(实际上是将数据写入其他地方,然后从那里检索数据,但它最初仍然在数据库中进行管理)。对于您的网站输出的HTML,您也可以缓存该服务器端的相同作品。

所有具有高流量的站点都使用某种数据库和HTML缓存。

而且,当从单个表格查询MySQL数据库中的多个特定记录(即ID:1,52,24,24)时,将查询组合成一个查询或将它们分隔成一个查询会更有效每个记录?

通常情况下,您使用一个查询和IN()函数来做到这一点,例如, ... WHERE id IN(1, 5, 27, 24),因为数据库服务器在一个查询而不是多个查询中执行此操作更容易。

0

通常,假设一个简单的查询,查询并返回所有需要的行与将它们分隔成单独的查询将会更高效。在编译每个查询的查询和IO开销方面存在开销。

但是,选择“最高效”方法有几个明显的例外。

用户是否可能取消中间的大型任务?如果是这样,许多较小的查询将允许用户部分中止任务,从而使服务器免于额外的工作。

可扩展性和用户友好性有时与效率不一致。如果许多用户必须共享资源,则如果一次返回一小部分结果,用户可能会遇到更多的响应,并且比等待所有结果更快。