2009-10-16 80 views
0

由于我正在寻找优化我的一些mysql查询并提高性能,我意识到我只是不知道我应该瞄准什么样的响应时间。 显然越低越好,但您通常针对的是用户网站的“缓慢”查询?目标mysql查询响应时间

我的查询当前运行时间在0.00到0.70秒之间。

我假设0.00是相当不错的,但约0.70秒?我认为我应该寻找改进的表现?如果是这样,你通常瞄准什么?

-----我的查询来回答您的问题(虽然我真的很感兴趣,你&你做什么----多一点信息

我的查询是在连接表与1-间300万行(有时更多) 我在有4GB内存和SATA驱动器的盒子上运行我的查询 该盒子运行6个不同的数据库,其中两个定期进行查询,一个定期更新 时间我提供的是“读取”数据库,很少写入。

对于Web请求,我正在运行1 & 3查询(但我使用memcache缓存数据以及性能)。

我给的时间是从命令行终端到机器的mysql响应(所以我假设实际上是运行时)。

根据查询,查询有许多连接,位于4 & 7之间。

+0

根据您的进一步信息,700毫秒一点也不差,因为有数百万行查询。 – 2009-10-16 22:13:03

+0

感谢Randolf,作为初学者,我很难理解我应该瞄准什么,以及什么被认为是“优化的”。今天我花了大部分时间来研究如何从1.1秒降到700毫秒。不知道我能否继续做得更好。 – pedalpete 2009-10-16 23:39:19

回答

1

它取决于 - 如果你在同一台机器上的数据库或另一台机器。 它也依赖于哪种查询,多少个连接,多少行,你使用索引来拉取数据,所以没有很好的答案:“一个查询应该把这个和那么久”。

我正在运行一些复杂的查询,在两台机器之间,它需要780到850毫秒 - 这对你来说毫无意义...... (可能在同一台机器上它们会更短,互联网连接 - 更长等...)

1

这实际上取决于您在页面上执行多少个查询以及您的应用程序有什么可接受的响应时间。

对于数据挖掘应用程序,100秒查询可能是可以的,而2秒查询可能对Web应用程序不可接受。

在Web应用程序上工作时,我有一个调试功能,可以在页面底部输出查询和执行时间。任何.5-1秒都会被标记为黄色,任何更高的都会被标记为红色。我有一个链接,我可以点击获取快速优化的解释输出。

当然,如果您的网页有数十个运行时间为0.3秒的查询,则会出现问题。

如果您擅长阅读查询的解释,那么您可以了解如何优化查询。红旗是临时表和缺乏索引的东西。就绝对时代而言,我认为你将很难找到一条关于“快速”的硬性规定。

1

这取决于。通常在小型查询(查询不到50000行)时,我期望< 150-200ms,但它取决于硬件和环境。

在你的例子中,你提到了700ms。查询在做什么?盒子里有多少内存?你在用什么磁盘?这些都会影响结果。