PHP:查询结果如何存储在mysqli_result中

2023-11-26

当我对数据库进行查询并在 mysqli_result 中检索结果时,内存使用量非常小。但是,当我将查询结果中的所有行提取到关联数组中时,内存使用率变得非常高。

<?php
    require_once("../config.php"); //db connection config
    $db = new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_DBASE);

    $query ="select * from table_name";
    if($r = $db->query($query)){
    echo "MEMORY USAGE before :  ". memory_get_usage()."<br><br>";
    $rows = array();
    while($row = $r->fetch_assoc()){

        $rows[]= $row;
    }
    echo "MEMORY USAGE after :  ". memory_get_usage()."<br><br>";


    //before: 660880
    //after:  114655768
    // # of records: around 30 thousands
?>

对我来说,存储这么多结果非常消耗内存,但我只是想知道为什么 mysqli_result 这么小。不可能每次调用fetch_assoc时都向数据库查询结果。那么结果存储在内存中的哪里呢?


获取结果和存储指向资源的指针之间存在巨大差异。

If you echo $r;在您第一次致电之前memory_get_usage();,你会意识到它只是一个指针。这是指向结果集的指针。直到你fetch您的结果,结果集实际上不会存储到内存中。

我建议你跑fetchAll()为了你想做的事。这将导致 1 个方法以更好的性能访问所有结果,因为它是在 mysqli 扩展(C 库)上使用的,而不是 PHP 中的循环。

当您使用完结果后,您还可以使用免费结果功能从内存中清除结果。如果您熟悉的话,这就像在 Java 中关闭游标一样。

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

PHP:查询结果如何存储在mysqli_result中 的相关文章

  • PHP - Filter_var 替代方案?

    我构建了一个 php 脚本来输出以表单形式发布的数据 但遇到了问题 网站将运行的服务器运行 PHP 5 1 6 此版本的 PHP 不支持 filter var 我需要知道短期内的替代方案 最好是昨天 但在 Google 或 Stack Ov
  • 为什么我不能在 TCPDF 表中使用 č,ć,đ 图表?

    我正在为我的网站构建一个 tcpdf 文件 该 tcpdf 文件中有一个包含一些数据的表格 但我无法使该章程正常工作 对于编码 我使用 windows 1250 宪章女巫不起作用 我已经尝试过 utf 8 但仍然没有得到这个章程 tcpdf
  • Pandas、大数据、HDF 表以及调用函数时的内存使用情况

    简短的问题 当 Pandas 在 HDFStore 上工作时 例如 mean 或 apply 它是否将内存中的完整数据作为 DataFrame 加载 还是将逐条记录作为 Serie 进行处理 详细描述 我必须处理大型数据文件 并且我可以指定
  • 通过 __get() 通过引用返回 null

    快速规格 PHP 5 3 error reporting 1 the highest 我正在使用 get 通过引用技巧神奇地访问对象中任意深度的数组元素 快速示例 public function get key return isset t
  • 如何通过php的require()或include()函数传递变量?

    当我使用这个时 require diggstyle code php page page no 警告是 无法打开流 第 198 行 C xampp htdocs 4ajax gallery core php 中没有错误 错误是 Failed
  • 如何在类似 MVC 的页面中加载基于漂亮 URL 的类?

    我想请教一些关于如何解决这个问题的提示 我正在尝试构建自己的 MVC 网站 我了解了 URL 的基础知识 http example com blog cosplay cosplayer expo today 博客 gt 控制器cosplay
  • 删除指向对象的 C++ 指针

    我认为删除命令会释放我分配的内存 有人可以解释为什么删除后我似乎仍然有内存在使用吗 class Test public int time int main Test e e new Test e gt time 1 cout lt lt e
  • 将 Google 信任徽章添加到 Magento

    我正在尝试将 Google Trust Badge 添加到我的 magento 商店 我尝试在 Magento 网站上搜索扩展程序 但找不到 我是否需要将以下代码粘贴到产品和结账页面 还是必须对其进行更改 如果有人能引导我走向正确的方向 我
  • 如何解码 eval( gzinflate( base64_decode(

    我已将此代码注入到我的网站中 如何解码尾随字符串 我需要知道发生了什么以及其背后的代码是什么 这应该输出将被执行的代码eval 我希望这就是您正在寻找的
  • Laravel 5 中的自定义验证器

    我正在将 Laravel 应用程序从 4 升级到 5 但是 我有一个自定义验证器 但无法运行 在L4中 我做了一个验证器 php文件并将其包含在全局 php using require app path validators php 我尝试
  • 语法错误,第 288 行出现意外的“endif”(T_ENDIF)[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我一直在离线处理我的 WordPress 网站的此代码错误 解析错误 语法错误 homez 541 photoher marie
  • 强制 Composer 下载 git repo 而不是 zip

    我对作曲家有一些问题 require php gt 5 3 2 kriswallsmith buzz 0 7 Repo https github com kriswallsmith Buzz tree v0 7 https github c
  • Joomla 页面中的自定义 php 代码

    我正在尝试将 Joomla 1 5 9 页面中的表源从页面中的硬编码 html 更改为从 SQL 数据库获取信息 执行此操作的正确方法是什么 创建一个新的模型或组件并以某种方式在页面中使用它 我找到了这些 http docs joomla
  • WordPress 插件中的类自动加载器

    我想编写一个类自动加载器以在 WordPress 插件中使用 该插件将安装在多个站点上 我想尽量减少与其他插件发生冲突的机会 自动加载器将是这样的 function autoload name some code here 我的主要问题是
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 从数据库填充复选框

    我有两个表 第一个由与名称关联的 id 组成 1 汽车 2 火车 3 普通 ETC 第二个表由两个字段 user id 和第一个表中的 id 组成 例如 1 1 2 1 3 当用户转到该页面时 我试图重新填充选定的复选框 首先 您查询数据库
  • URL 中的 %2F 中断并且未引用所需的 .php 文件 [重复]

    这个问题在这里已经有答案了 我需要将 作为变量作为 URL 的一部分传递 我的结构如下所示 www domain com listings page 1 city Burnaby South type Townhome bedroom 2
  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • 使用 php-ews(Exchange Web 服务)在特定日期后获取电子邮件

    在我的 PHP 脚本中 我需要弄清楚如何检索指定消息 ID 之后或特定日期之后的所有电子邮件 两者都可以 我只需要检索自上次抓取收件箱以来的新电子邮件 这个收件箱每天收到数千封电子邮件 而且我在 30 天内无法删除任何电子邮件 对于初始导入
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2

随机推荐

  • 如何创建具有对角(或有角度)顶线的 div

    我是 CSS3 的新手 我所知道的都是自学 阅读你们或任何其他教程 所以经过几个小时的研究和试错 我真的需要你们的帮助 我正在尝试仅旋转 div 的顶线 这就是我到目前为止所做的 http blanc design com sigma2 在
  • Resteasy 和 Google Guice:如何通过 @Injection 使用多个 @ApplicationPath 和资源?

    I 创建了一个项目使用 Resteasy 在我的 Jax rs 资源中测试 Google Guice 提供的依赖项注入 我的意图是 使用多个 ApplicationPath对于我的 API 的版本 在每个类中注释为 ApplicationP
  • 使用正则表达式查找回文

    这个问题是为了试图理解以下答案之一 如何使用正则表达式检查字符串是否为回文 给出的答案马库斯 贾德罗 is 1 2 有人可以解释一下 这里到底发生了什么 我需要做类似的事情Perl 但无法理解这个解决方案 PS 我对 Perl 不太擅长 所
  • GCC不支持简单整数常量表达式?

    海湾合作委员会 4 9 和 5 1reject这个简单的全局范围的 C99 声明 铿锵接受了 const int a 1 b a error initializer element is not constant 这么基本的功能怎么可能少呢
  • 使用 Google 日历的 Android 应用程序 - 同步问题

    我正在尝试创建一个与 Google 日历交互的 Android 应用程序 我已按照使用内容提供程序的教程进行操作here 解释了此代码的部分内容here 我面临以下问题 我创建了一个新日历测试日历从我的笔记本电脑上在线获取 并将其标记为Se
  • 将 fgets() 与 char* 类型一起使用

    我有一个关于将 fgets 与 char 字符串一起使用的简单问题 char temp FILE fp fopen test txt r fgets temp 500 fp printf s temp 这段代码运行得不好 但我修改后char
  • Composer View 未将变量加载到视图中

    我之前创建了 3 个作曲家视图 它们都工作正常 但后来我创建了另一个 但似乎不起作用 我一直在努力让它工作 它似乎与我的代码无关 我将把其中的一部分放在这里 但我仍然不认为这是代码 提供者 EvenComposerProvider publ
  • 文件系统 API 在 Chrome v27 和 v29 中不起作用

    我正在尝试设置文件存储以供稍后在 Phonegap 中使用 但现在在 Chrome 中进行调试 按照描述的方式进行html5rocks只允许我向用户请求配额 但请求文件系统时的回调不会执行 看 window webkitStorageInf
  • 如何从 GUI 应用程序正确终止 QThread?

    我尝试使用self terminate 在 QThread 类中 还有self thread terminate 在 GUI 类中 我也尝试过放self wait 在这两种情况下 但是 会发生两种情况 1 线程根本没有终止 GUI 冻结等待
  • 何时使用 scala 三重插入符 (^^^) 与双插入符 (^^) 和 into 方法 (>>)

    有人可以解释在设计 scala 解析器组合器时如何以及何时使用三重插入符 与双插入符 吗 以及何时 如何使用 parser into 方法 gt gt 我将从一个使用 Scala 的示例开始Option类型 在一些重要方面类似于Parser
  • BeanUtils 不适用于链设置器

    e g class tester Test public void testBeanUtils throws InvocationTargetException IllegalAccessException NoSuchMethodExce
  • Tensorflow 汇总合并错误:形状 [-1,784] 具有负尺寸

    我试图总结下面神经网络的训练过程 import tensorflow as tf import numpy as np from tensorflow examples tutorials mnist import input data m
  • 在函数外部声明的变量

    我只是想看看变量作用域是如何工作的 并遇到了以下情况 全部从终端运行 x 1 def inc x 5 inc Traceback most recent call last File
  • go install 总是尝试使用 GOROOT 并且 GOPATH 未在 go env 下列出

    我遇到了一个非常令人沮丧的问题GOPATH 尽管设置在 profile 调用时没有出现go env 并且似乎没有影响go install目标位置 我正在尝试使用go install安装软件包 并收到此错误 这清楚地表明它正在尝试安装 usr
  • 提交具有自定义功能的加载项(更新?)

    I asked 关于提交具有自定义功能的加载项的问题6个月前 目前的结论是an add in that uses custom functions cannot currently be published to the Office St
  • 如何在服务器端处理多个提交

    我们都知道古老的 禁用提交按钮 技巧 但是服务器端处理多个提交的最佳方法是什么 我有一个应用程序 它绝对是critical表格仅发送一次 它处理信用卡 我没有写出现在的情况 但作为一个快速修复 我使用了禁用提交技术 但是一些禁用了 java
  • 在 Android 上将值从 Dialog 传递回 Activity 的可靠方法?

    这个问题已经出现好几次了 我已经阅读了所有答案 但我还没有看到真正可靠的方法来处理这个问题 在我的解决方案中 我使用来自调用的侦听器Activity to the AlertDialog像这样 public class MyDialogFr
  • 在推送通知上打开浏览器

    当用户单击推送通知时 我尝试使用 url 打开浏览器 我在 stackoverflow 中搜索 找到了这个 Intent browserIntent new Intent Intent ACTION VIEW Uri parse url s
  • 查找并复制文件

    为什么以下不将文件复制到目标文件夹 find home shantanu processed name 2011 xml exec cp home shantanu tosend cp omitting directory home sha
  • PHP:查询结果如何存储在mysqli_result中

    当我对数据库进行查询并在 mysqli result 中检索结果时 内存使用量非常小 但是 当我将查询结果中的所有行提取到关联数组中时 内存使用率变得非常高