PHP:查询 MySQL 最快的方法是什么?因为 PDO 慢得令人痛苦

2024-03-29

我需要执行一个简单的查询。

从字面上看,我需要执行的是:

SELECT price, sqft, zipcode FROM homes WHERE home_id = X

当我使用 PHP 时PDO,我读过的是连接到 MySQL 数据库的推荐方法,简单地创建连接需要经过测量610ms.

我的代码如下:

try {
    $conn_str = DB . ':host=' . DB_HOST . ';dbname=' . DB_NAME;
    $dbh = new PDO($conn_str, DB_USERNAME, DB_PASSWORD);
    $params = array();    
    $sql = 'SELECT price, sqft, zipcode FROM homes WHERE home_id = :home_id';
    $params[':home_id'] = X;
    $stmt = $dbh->prepare($sql);    
    $stmt->execute($params);
    $result_set = $stmt->fetchAll(PDO::FETCH_ASSOC);
    // json output  
    ob_start("ob_gzhandler");
    header('Content-type: text/javascript; charset=utf-8');
    print "{'homes' : ";
    print json_encode( $result_set );
    print '}';
    ob_end_flush();
    $dbh = null;
} catch (PDOException $e) {
    die('Unable to connect');
}

Question:连接到 MySQL 数据库以执行上述查询的最快方法是什么?


如果速度缓慢是由于每个连接都必须通过网络,并且 mysql 必须执行反向 DNS 查找来检查其 GRANT 表,那么该开销很可能会导致很大一部分延迟。切换到持久连接将使其成为连接生命周期的一次性成本。

然而,这确实会导致其他问题。由于事务在保存事务的连接关闭时会回滚并释放锁,因此保持持久意味着它们将保持活动状态。如果您的代码中没有非常小心地避免连接处于不一致的状态,则很可能会造成死锁,或者至少锁定所有其他连接,直到您手动进入并清理为止。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP:查询 MySQL 最快的方法是什么?因为 PDO 慢得令人痛苦 的相关文章

随机推荐

  • 使用字典中的特定键构建列表(python)?

    我正在用 Python 实现 Dijkstra 搜索算法 在搜索结束时 我使用前驱图重建最短路径 从目标节点的前驱开始 例如 path path append destination previous predecessor map des
  • 如何在 Selenium 中的 HTML5 Canvas 上执行鼠标滚轮滚动?

    我正在开发 GWT 应用程序 类似于 Paint 在此 我有一个 HTML5 Canvas 其中有一个功能 向上和向下滚动鼠标滚轮将放大和缩小画布 我进行了很多搜索 但没有找到解决此问题的解决方法 这是所做的 int PosX 0 int
  • 系统('php -l')的替代品?

    在我目前正在从事的一个项目中 我们正在考虑放置system http php net system进入 php ini 的disable functions http php net disable functions宣言 现在 我们的一个
  • SwiftUI - ObservableObject 创建多次

    我在视图中创建了一个 ObservableObject ObservedObject var selectionModel FilterSelectionModel 我在里面放置了一个断点FilterSelectionModel s ini
  • Apache Maven 资源插件排除目录

    我试图在构建过程中将一些资源从一个点复制到另一个点 因此我使用 Apache Maven 资源插件 实际上我排除了一些文件 我不需要 但我还想排除一个目录 我尝试了几种方法但没有成功
  • 使用位置 Azure Data Lake 创建 Databricks SQL 数据库

    如何在 Databricks hive 元存储中使用位置 adls 和 abfss 创建数据库 无需安装 像这样的东西 create database if not exists adb raw location abfss con ema
  • 如何从 Vega Lite 图表中删除轴线

    我想从下面的 vega lite 图表中删除 隐藏轴线 我尝试将颜色更改为空 如下所示 或其他颜色 但这不起作用 https vega github io editor gist fc799bc9f7a8f28b8f1f2ec84673e9
  • android + eclipse + maven + actionbarsherlock

    我读了很多关于 actionbarsherlock maven android 的东西 但我见过的解决方案都不适合我 我确信我已经非常接近解决方案 但我不明白 我需要一些帮助 所以这是我的问题 我尝试创建一个依赖于 Actionbarshe
  • 如何删除空值?

    如何删除底部计数中的空值 即 我只想查看实际销售单位的产品 我尝试过非空和非空但没有成功 with member Measures Amount Sold as Measures Internet Sales Amount format s
  • 为什么“超时”不适用于管道?

    以下命令行调用timeout 这没有意义 只是出于测试原因 无法按预期工作 它会等待 10 秒 并且在 3 秒后不会停止命令的运行 为什么 timeout 3 ls sleep 10 您的命令正在执行的操作正在运行timeout 3 ls并
  • 在 Windows 上的 XAMPP 中哪里可以更改 lower_case_table_names=2 的值?

    我正在使用 Windows 7 和 XAMPP 我正在尝试导出数据库 在此过程中表名称将转换为小写 我搜索了很多 我知道我必须改变的值lower case table names from 0 to 2 但是我必须在哪里更改这个值 在哪个文
  • 将 TypeScript 网站从 GitHub 部署到 Azure

    我有一个 NET 网站 其中包含一些 TypeScript 文件 我尝试将其从 GitHub 部署为 Azure 网站 但收到与 TypeScript 相关的错误 在我看来 这可能与我使用最新版本 1 0 有关 而 kudu 版本只有 0
  • Google 端点和公共 Api 密钥

    要使用 Google 服务 您可以使用 OAuth 身份验证 或者 如果您不需要用户登录 则可以使用公共 api 密钥 将授权域定义为请求的来源 现在 我正在使用 google 端点编写自己的 API 并且我将允许用户通过公共 api 密钥
  • 使用sessionStorage有什么好处? [复制]

    这个问题在这里已经有答案了 只是想知道在存储要在 Javascript 轮播中使用的 HTML 内容时使用 HTML5 的 sessionStorage 的实际好处是什么 与性能有关吗 加载时间 带宽 是的 您将使用更少的带宽 这会提高性能
  • 使用 ggdendro 在树状图的片段下显示变量标签

    我的问题与安德里的有关answer https i stack imgur com JW0m1 png我之前的问题 我的问题是是否可以在树状图的相应段下显示变量标签和汽车标签 library ggplot2 library ggdendro
  • 扩展 Android 的默认 Gmail/电子邮件应用程序

    我想通过插入 ContentProvider 或使用意图过滤器来扩展 Android 平台的默认 Gmail 电子邮件应用程序 本质上 我希望能够扫描传入的电子邮件以查找将在我的 Android 应用程序中触发事件的特殊规则 如果自动扫描电
  • 立即终止无循环线程,无需中止或挂起

    我正在实现一个协议库 这里有一个简化的描述 main 函数中的主线程将始终检查网络流 在 tcpclient 内 上是否有某些数据可用 假设响应是收到的消息 线程是正在运行的线程 thread new Thread new ThreadSt
  • 在 Sparklyr 中创建虚拟变量?

    我正在尝试扩展我的一些 ML 管道 我喜欢 Sparklyr 打开的 rstudio spark 和 h2o 的组合 http spark rstudio com http spark rstudio com 我试图弄清楚的一件事是如何使用
  • 多个组的可反应聚合函数

    使用 Rreactable包中 我试图使用两个 groupBy 变量显示标记读数的百分比 在较低级别的分组中 这是计算正确的百分比 但在分组的第二 外部 级别上 它没有显示正确的百分比 这是数据 dat lt structure list
  • PHP:查询 MySQL 最快的方法是什么?因为 PDO 慢得令人痛苦

    我需要执行一个简单的查询 从字面上看 我需要执行的是 SELECT price sqft zipcode FROM homes WHERE home id X 当我使用 PHP 时PDO 我读过的是连接到 MySQL 数据库的推荐方法 简单