0

我正在一个网站中实施数据库分析,该网站肯定会在明年开始看到明显的增长增长。我正在每个页面上实现查询分析(使用 Zend),并在页面变得太慢时记录问题。到那时,我会看看我可以做些什么来优化查询。问题是,没有任何扩展网站的经验,我不确定对于给定页面上的查询“太慢”会是什么。在寻找优化查询的方法之前,给定页面上的查询是否有任何可接受的时间限制?

谢谢,

埃里克

4

1 回答 1

2

没有全球“太慢”。一切都取决于查询的功能以及您的流量。花一些时间为流量生成器编写场景,然后对您的网站进行负载测试。检查哪些部分首先损坏,修复它们并重复。即使是简单的查询也会遇到一些病态的情况。

不要忘记将更多的假数据加载到数据库中 - 更多的用户可能会为您生成更多数据,并且只有当数据集大于您的数据库缓存/缓冲区时才会出现一些问题。确保你也指责了正确的查询——如果你有一些东西锁定了表进行更新,其他事务可能需要重试/延迟——查看前 N 个查询而不是固定在一个查询上。

确保您也查看来自双方的查询 - 来自客户端和服务器。例如,如果您使用 mysql,您可以轻松记录所有不使用索引进行连接/搜索的查询。您还可以使用percona 工具包(以前的 Maatkit)从网络中获取流量并进行分析。您可以使用mysqltunner查看您遇到的缓存未命中次数。对于其他数据库,您可以在其他地方找到类似的工具。

如果有任何一般规则,我会说 - 如果您的查询开始花费 10 倍于没有任何其他负载的情况下花费的时间,那么您就有问题了。此外,这与查询无关 - 它与页面加载时间有关。找到“页面生成需要多长时间?”的答案。然后从那里去。(可能不到一秒钟,除非您在幕后进行大量数据处理)

于 2013-08-19T16:14:31.723 回答