gpt4 book ai didi

mysql - [PHP-PDO 是什么导致我的查询变慢?

转载 作者:行者123 更新时间:2023-11-29 21:56:06 26 4
gpt4 key购买 nike

我们正在开发一个私有(private)论坛解决方案,我们有一个“帖子”表,其中包含:

  1. 1 个索引(主键)
  2. 唯一 key (即相应帖子的 slug/seo-url)
  3. 2 个外键(引用类别 (id) 和用户 (id) 来了解帖子类别和帖子的 OP。

现在,ID(主键)、类别(id)和用户(id)都是 INT(11) UNSIGNED,我们使用了以下内容,并在 0.2XX 秒内得到结果(在 PHP 页面上):

  • 使用 PHP PDO
  • 使用 PHP-MySQLi
  • 将 PHP PDO 与持久连接和缓冲查询结合使用

查询:两者提供几乎相同的性能(在 0.17-0.2XX 秒范围内)

  1. 从帖子、类别、用户中选择行,其中 post.userid=user.id 且 post.categoryid=category.id 且 post.id=1; -> 平均在 0.17 到 0.28 秒内给出结果
  2. 从后 INNER JOIN 类别中选择文章on post.categoryid = Category.id INNER JOIN 用户 on post.userid = user.id -> 标 checkout 价比之前更快,但仍然较慢。

现在,当我们使用 MyBB 或 PHPBB 时,作为测试的一部分,这些东西会加载所有查询,包括选择 session 、更新该行以及在 0.2 秒内插入。这些软件到底在做什么?

对于 MySQLi,我们使用 PDO 连接、准备、绑定(bind)、执行。

作为向前迈出的一步,我创建了一个 View ,其中在一个 View 中包含所有 3 个表中的所有必需列,但这再次提供了相同的性能。

我做错了什么,单个查询需要 0.18-0.2XX 秒,而完整的页面显示速度更快(超过 1 个 select+update+select)。

案例:MyBB/PHPBB 和自定义论坛均在同一台机器上使用,具有相同的 PHP-MySQL 配置,并且只有 2 个用户同时访问该网站(1 个用户使用 2 个不同的浏览器)

最佳答案

What am I doing wrong

你看的方向完全错误。您采取的每项措施都与查询性能无关。

您要做的就是研究给定查询的EXPLAIN输出,并相应地设置索引,以使这些查询对所有涉及的表使用索引。

关于mysql - [PHP-PDO 是什么导致我的查询变慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33140150/

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