gpt4 book ai didi

php - MySQL的性能

转载 作者:行者123 更新时间:2023-11-29 00:41:17 25 4
gpt4 key购买 nike

MyPHP 应用程序使用 HTTPClient 向 MySQL 发送一个 SELECT 语句。

大约需要 20 秒或更长时间。我以为 MySQL 无法立即得到结果,因为 MySQL Administrator 在我等待结果时显示了 发送数据复制到 tmp 表 的状态。

但是当我从另一个应用程序(如 phpMyAdmin 或 jmater)发送相同的 SELECT 语句时,它只需要 2 秒或更少。快 10 倍!!

有谁知道为什么 MySQL 表现如此不同?

最佳答案

就像@symcbean 已经说过的,php 的mysql 驱动程序缓存查询结果。这也是为什么您可以在 while($row=mysql_fetch_array()) 循环中执行另一个 mysql_query() 的原因。

MySql Administrator 或 phpMyAdmin 显示结果如此之快的原因是他们在背后向您的查询附加了一个 LIMIT 10

如果您想快速获得查询结果,我可以提供一些提示。它们涉及仅选择您需要的内容以及您需要的时间:

  • 只选择您需要的列,不要到处乱扔 select *。稍后当您想要另一列但忘记将其添加到 select 语句时,这可能会困扰您,因此请在需要时执行此操作(例如具有 100 列或一百万行的表)。
  • 不要在用户面前扔一张 20 x 1000 的表格。无论如何,她无法在一张巨大的 table 上找到她要找的东西。提供排序和过滤。作为奖励,找出她通常寻找的内容,并提供一种只需单击一下即可显示该记录的方法。
  • 对于非常大的表,只选择您需要的记录的主键。比在 while() 循环中检索更多详细信息。这可能看起来不合逻辑,因为您进行了更多查询,但是当您处理涉及大约 10 个表、数百个并发用户、锁和查询缓存的查询时;一开始事情并不总是有意义:)

这些是我从老板和我自己的经验中学到的一些技巧。一如既往,YMMV。

关于php - MySQL的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12155779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com