位置: 编程技术 - 正文

对比PHP对MySQL的缓冲查询和无缓冲查询(php技术和mysql怎么结合)

编辑:rootadmin

推荐整理分享对比PHP对MySQL的缓冲查询和无缓冲查询(php技术和mysql怎么结合),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php和mysql的联合使用,php和mysql的联合使用,php技术和mysql怎么结合,php和mysql,php和mysql,php和mysql的联合使用,php和mysql的结合是目前web开发中的黄金组合,php和mysql的联合使用,内容如对您有帮助,希望把文章链接给更多的朋友!

关于缓冲查询和无缓冲查询MySQL的客户端有两种类型的查询:缓冲查询:将接收查询的结果并把他们存储在客户端的缓存中,而且接下来获取行记录的请求仅仅从本地内获取。(1)优点:可以在结果集中自由地移动“当前行”的指针,这样很容易找到,因为结果是存在客户端的。(2)缺点:需要额外的内存来存储这些结果集,而且需要大量的内存,另外,php中用来运行查询的函数会一直到所有的结果都接收才会返回值。

无缓冲查询:会限制你通过严格的顺序访问查询结果。但他不需要额外的内存来存储整个结果集。你可以在MySQL服务器开始返回值的时候就开始获取而处理或显示数据行。当使用无缓冲结果集时,必须使用mysql_fetch_row函数获取所以的数据行,或者在给服务器发送其他任何命令前用mysql_free_result函数关闭结果集。

哪种类型的查询好?最好的根据是具体情况而定,无缓冲查询在结果集巨大的时为你节省大量的临时内存,而且查询不需要排序时,php在MySQL数据库实际上还在处理时就可以获得第一个数据行。缓存查询便于寻找,它可以提供一个全面的寻找加速。因为每一个单独的查询的都会快读结束,mysql快速的获取结果集并存放在内存中,而不是在处理PHP代码时保持查询为可用的。另外一个无缓冲查询的限制是在所有的数据行都被读取或者结果集用mysqli_free_result释放之前,你将无法向服务器发送任何命令。

PHP+MySQL缓冲查询和无缓冲查询PHP MySQL查询(mysqli,pdo_mysql)默认使用缓冲模式. 也就是说查询结果将一次性从MySQL传输到PHP进程内存中, 这时可以统计结果集的行数,以及移动结果集指针. 缓冲模式下,如果结果集很大,那么PHP进程也会占用大量的内存, 直到结果集被unset或者free.

对比PHP对MySQL的缓冲查询和无缓冲查询(php技术和mysql怎么结合)

store_result用于缓冲模式,所有结果一次性存储到PHP进程中:

如果PHP的MySQL数据库驱动底层用的是libmysqlclient,那么memory_limit不能统计到结果集占用的内存, 除非结果集已经赋值给PHP变量,如果底层使用mysqlnd作为驱动时则可以统计到(PHP从5.4开始底层默认使用mysqlnd). 无缓冲模式下执行的查询将会返回一个resource资源引用,位于MySQL的查询结果等待PHP获取. 无缓冲模式下,PHP进程占用的内存很少,但会增大MySQL服务器的负载. 在PHP取回所有结果前,在当前数据库连接下不能发送其他的查询请求.

use_result表示无缓冲查询:

总结: 当结果集不大时,或者需要在读取所有行前获取结果集行数时,使用缓冲查询(默认). 当结果集很大时,使用无缓冲查询,避免PHP进程占用大量的内存.

默认情况下,mysqli_stmt的SELECT查询结果将留在MySQL服务器上,等待fetch方法把记录逐条取回到PHP程序中,这样做会降低性能,但能节省内存. 如果需要对所有记录进行处理,可以调用mysqli_stmt::store_result,把所有结果一次性全部传回到PHP程序中, 这样做更高效,能减轻MySQL服务器的负担,虽然内存占用会多一些. 如果获取SELECT语句查找到了多少条记录,可以用 mysqli_stmt::$num_rows 获取. 这个属性只有在提前执行过 mysqli_stmt::store_result 方法,将全部查询结果传回到PHP程序中的情况下才可以使用. 对比 mysqli_result::$num_rows 则不没有这个限制. 用 mysqli_stmt::free_result 关闭 mysqli_stmt::store_result:

mysqli_stmt::store_result能让mysqli_stmt::fetch更高效,但也需要用mysqli_stmt::free_result显式关闭. 可以用mysqli_stmt::get_result拿到结果集对象$result,然后mysqli_result::fetch_all拿到查询数组$results: 整理一下相关参数:

php blowfish加密解密算法 PHPBlowfish算法的加密解密,供大家参考,具体内容如下php/***phpblowfish算法*Classblowfish*/classblowfish{/***blowfish+cbc模式+pkcs5补码加密*@paramstring$str需要加密的数

PHP编写文件多服务器同步程序 本文实例为大家分享了PHP文件多服务器同步工具,具体内容如下phpheader('Content-type:text/html;charset=utf-8');//文件名称:PHP文件多服务器同步工具//文件作用

Windows Server R2和中PHP连接MySQL过慢的解决方法 对比下面两个脚本的速度:Windows7用localhost连接本地MySQL,速度会很慢。Windows7用.0.0.1连接本地MySQL,速度则是正常的。my.ini里配置了bind-address=.0.0.1

标签: php技术和mysql怎么结合

本文链接地址:https://www.jiuchutong.com/biancheng/297154.html 转载请保留说明!

上一篇:php投票系统之增加与删除投票(管理员篇)(php投票系统代码)

下一篇:php blowfish加密解密算法(php自带的加密解密函数)

  • 生产企业免抵退税申报步骤
  • 7月薪资8月发怎么交税
  • 小企业会计制度及核算办法
  • 工商局打印机读档案委托书
  • 土地使用税什么意思
  • 支付外聘老师的培训费
  • 货物正常报损的分录
  • 小规模纳税人的税率是多少(含国、地税)
  • 利息股息红利个税如何计算
  • 管道租赁合同怎么写
  • 我是小规模企业客户要求开专票不开投诉
  • 2018年工会经费返还比例
  • 商业健康保险个人所得税扣除
  • 关于个人所得税纳税人的说法正确的有
  • 企业的资金怎么使用
  • 规范合同签订的重要性
  • 小规模可以接收专票吗现在
  • 售后服务对客户满意度的影响论文
  • 工会经费的银行怎么入账
  • linux网络设置在哪里
  • 包装物押金为什么含税
  • PHP:Memcached::getAllKeys()的用法_Memcached类
  • 高新企业有啥用
  • 电竞显示器怎么调整参数
  • 将时间序列转化为图像
  • 资产负债表各项目年初余额栏内各项数字
  • typescript完全解读
  • 人工智能复试面试常见问题
  • 火车票抵扣进项税需要认证吗
  • mongodb findandmodify
  • 小企业如何计提折旧
  • 不是公司员工差旅费可以入差旅费吗
  • 公对公退款必须退至原账户的规定
  • 社会团体费用报销制度
  • 资产管理公司的监管部门是谁
  • 劳动合同和劳务合同可以一起签吗
  • SQL Server 2008 R2占用cpu、内存越来越大的两种解决方法
  • 认缴制没有实资本会怎么样
  • 税务师工作年限证明材料
  • 超市的收银小票丢了可以要求重新打印一张吗
  • 土地增值税间接转让怎么算
  • 金蝶结转销售成本
  • 主营业务成本借贷方向增减
  • 收到员工交来的宿舍费
  • 购入房产会计记账凭证怎么做
  • 材料采购合同印花税税率
  • 单位补扣社保算漏交吗
  • 票据比例
  • 资产减值准备怎么理解
  • 车间杂工工资如何结算
  • 固定资产清理在贷方怎么结转
  • 风险纳税人去税务局去报税可以吗
  • 财政收据使用范围
  • 纳税人销售免税产品开具专票
  • 应付账款与应付票据结合的原则
  • 自产自销的茶叶公司怎么做账
  • 培训费发票必须开吗
  • select into 和 insert into select 两种表复制语句
  • 快速释放剪贴蒙版快捷键
  • 怎么在bios里设置usb开关
  • 富士通FUJITSU笔记本电脑开机进入BIOS的方法(F2)
  • win7无法打开此文件
  • windows xp 开机
  • win10预览版最新
  • 如何调整心态和正确处理情绪
  • win7系统运行速度提升
  • unity双击
  • Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社
  • texture packer工具
  • (转)Unity3D NGUI在UI上显示3D模型
  • angular jsx
  • unity星球模型
  • javascript获取数据类型
  • 获取android_id
  • js类的定义方法
  • 企业所得税计算器在线计算
  • 一般纳税人取得苗木普票可以抵扣吗
  • 浙江省电税务局电话
  • 个体户注销还要交税吗?
  • 国税地税数据共多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设