SQL Query有多少SQL查询?

时间:2010-01-29 22:03:35

标签: sql mysql

我正在研究使用CMS并在vBulletin 4.0上进行评论;在一个页面加载时使用大约200个查询。

我当时很担心。

进一步的研究将我带到其他网站,看看他们使用了多少查询,我发现一些论坛软件,如Invision Power Board和PHPBB,使用的搜索量低至6或8。

目前,我的网站使用了大约25到40个查询。

我应该担心吗?

6 个答案:

答案 0 :(得分:11)

不要担心查询次数。

担心:

  1. 页面加载速度太慢
  2. SQL太复杂而无法维护。
  3. 澄清:

    SQL过于复杂可能来自太多的查询或一些非常复杂的查询(大量的连接和子查询等)。

答案 1 :(得分:9)

如果你的目标是什么,那么每次HTTP命中就要瞄准3次读取和1次写入。

虽然这些是任意数字(不知何故,它们实际上来自Advanced PHP Programming),但他们强调了这些想法:

  • 每次HTTP调用
  • 时,SQL往返次数应该很低,10以下
  • 读取和写入之间存在差异,并且该比率应该有利于读取。写创建争用

还记得并非所有读取都是相同的:3个读取应该是高度优化的读取,而不是具有4-5个外部连接的全表扫描...

答案 2 :(得分:0)

它取决于。命中数据越多,负载就越多。只是要寻找一些东西。如果需要显示来自多个不同表的值,则可能需要运行多个查询。如果你只有几个用户并且你知道你不会拥有大量数据,那可能无关紧要。

需要考虑的一些事项:

  • 您是否每次加载多次运行相同的查询?如果您可以重复使用结果,请执行此操作。
  • 您是否正在运行另一个查询的每个查询结果?如果是这样,也许允许DB进行连接,只做一次拉动。

如果您的网页过多地访问数据库太慢,请查看memcached

答案 3 :(得分:0)

您可能会尝试重新分解代码,以减少到SQL Server的往返次数。一种方法是使用缓存。例如,经常需要的数据可以在应用程序启动时加载,然后在需要时从缓存中获取。

另一种方法可能是将数据去规范化为专门设计的表格,以便在少量查询中为您提供网站所需的数据。

答案 4 :(得分:0)

还要考虑是否可以缓存其中一些查询(例如,用于填充查找值的查询)。这样,如果在多个页面上调用相同的查询,或者每次从一组记录移动到另一组记录,则不会再次命中数据库以执行相同的查询。我记得有一次,当我们运行的存储过程非常快时,我们试图确定网站为什么这么慢,并且发现使用分析器,当它不需要时,它一遍又一遍地被发送。 / p>

答案 5 :(得分:0)

您可以使用vbulletin缓存所有这些查询。如果你看一下pbnation.com,他们每天有超过一百万的访问者,每页加载只有大约3-4个查询。其他所有内容都缓存在memcached中。