由于我正在寻求优化我的一些mysql查询并提高性能,我意识到我只是不确定我应该针对什么样的响应时间。 显然越低越好,但您通常将目标定位为消费者网站的“慢速”查询?
我的查询目前正在0.00到0.70秒之间运行。
我认为0.00非常好,但0.70秒呢?我认为我应该寻求提高性能?如果是这样,你通常的目标是什么?
-----关于我的问题的更多信息来回答你的问题(虽然我真的对你的问题以及你做的事情感兴趣----
我的查询在连接表上,行数在1-3百万行之间(有时更多)。 我在具有4GB RAM和SATA驱动器的同一个盒子上运行我的查询。 该框运行6个不同的数据库,其中两个定期查询,一个定期更新。 我提供的时间是用于很少写入的“读取”数据库。
对于网络请求,我的运行时间为1& 3个查询(但我使用memcache缓存数据以及性能)。
我给出的时间是从命令行终端到机器的mysql响应(所以我假设它实际上是运行时)。
查询有很多连接,介于4和4之间。 7取决于查询。
答案 0 :(得分:1)
取决于 - 如果您与数据库或其他计算机位于同一台计算机上。 它还依赖于哪种查询,多少联接,多少行,你使用索引来提取数据,所以没有一个好的答案:“一个查询应该采取这个和那么长的。”
我在两台机器之间运行一些复杂的查询,需要780到850毫秒 - 这对你来说没什么意义.... (可能在同一台机器上,它们会更短......,通过互联网连接 - 更长时间......)
答案 1 :(得分:1)
这实际上取决于您在页面上执行的查询数量以及您的应用程序可接受的响应时间。
对于数据挖掘应用程序,100秒查询可能没问题,而对于Web应用程序,2秒查询可能是不可接受的。
在处理Web应用程序时,我有一个调试功能,我可以在页面底部输出查询和执行时间。任何.5-1秒都会被标记为黄色,任何更高的标记都会被标记为红色。我有一个链接,我可以点击以获得解释输出以进行快速优化。
当然,如果您的网页上有几十个查询,每个查询运行时间为.3秒,那么您就会遇到问题。
如果您擅长阅读查询说明,那么您可以了解优化查询的程度。红旗就像临时表和缺乏索引。就绝对时间而言,我认为你很难找到一条关于“快”的硬性规则。
答案 2 :(得分:1)
这取决于。通常在小的查询(查询不到50 000行)上,我期望< 150-200ms,但这取决于硬件和环境。
在您的示例中,您提到700毫秒。查询在做什么?盒子里有多少RAM?你用的是什么磁盘?这些都会影响结果。