返回顶部
首页 > 资讯 > 数据库 >PHP中MySQL操作的Buffer用法详解
  • 907
分享到

PHP中MySQL操作的Buffer用法详解

2024-04-02 19:04:59 907人浏览 薄情痞子
摘要

本篇内容介绍了“PHP中Mysql操作的Buffer用法详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

本篇内容介绍了“PHPMysql操作的Buffer用法详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

phpmysql的连接有三种方式,mysql,mysqli,pdo。不管使用哪种方式进行连接,都有使用buffer和不使用buffer的区别。

什么叫使用buffer和不使用buffer呢?

客户端与mysql服务端进行查询操作,查询操作的时候如果获取的数据量比较大,那个这个查询结果放在哪里呢?

有两个地方可以放:客户端的缓冲区和服务端的缓冲区。

我们这里说的buffer指的是客户端的缓冲区,如果查询结果已经从服务端获取回来了,放置在了客户端的缓冲区,我们就称之为使用buffer。如果还是存放在服务端的缓冲区的话,我们就说没有使用buffer(unbuffer)。

使用buffer和不使用buffer有什么区别?

主要在内存方面,使用buffer会增加客户端的内存压力,当返回的数据结果特别大的时候可能会占用调用客户端(实际就是一个php进程)比较大的进程。不使用buffer自然对服务端(这里说的是提供mysql服务的服务器)压力更大。

具体可以参考:php查询mysql大量数据的内存占用分析

php中三种模式是如何设置是否使用buffer的?

  • mysql默认的query是使用buffer的,而不使用buffer就需要使用mysql_unbuffer_query

  • mysqli默认的query是不使用buffer的,要使用buffer就需要设置mysqli_store_result

  • pdo默认的quey是不使用buffer的,要使用buffer就需要设置mysql_attr_use_buffered_query

大致相关代码如下:

<?php  $dbconfig = array(  'host' => '10.128.11.101',  'port' => '3306',  'user' => 'test',  'pass' => 'test',  'db' => 'test',  );  $sql = 'select * from so_topic_app';  //---------mysql//  $db = mysql_connect($dbconfig['host'], $dbconfig['user'], $dbconfig['pass']);  mysql_select_db($dbconfig['db'], $db);  mysql_set_charset('utf8', $db);  // mysql使用buffer  $res = mysql_query($sql, $db);  $data = array;  while($row = mysql_fetch_row($res)) {  $data = $row;  }  // mysql不使用buffer  $res = mysql_unbuffered_query($sql, $db);  $data = array;  $data = $row;  }  mysql_close($db);  //---------mysqli//  $db = mysqli_connect($dbconfig['host'], $dbconfig['user'], $dbconfig['pass'], $dbconfig['db']);  // mysqli不使用buffer  $result = mysqli_query($db, $sql);  $data = array;  while($row = $result->fetch_array) {  $data = $row;  }  // mysqli使用buffer  $result = mysqli_query($db, $sql, mysqli_store_result);  $data = array;  $data = $row;  }  mysqli_free_result($result);  mysqli_close($db);  //---------pdo//  $dsn = mysql:dbname={$dbconfig['db']};host={$dbconfig['host']};  $pdo = new pdo($dsn, $dbconfig['user'], $dbconfig['pass']);  // pdo不使用buffer  $stmt = $pdo->prepare($sql);  $stmt->execute;  $data = array;  $data = $stmt->fetchall;  // pdo使用buffer  $pdo->setattribute(pdo::mysql_attr_use_buffered_query, true);  $stmt->execute;  $data = array;

后续

当然如果数据量非常大的话,大部分人还是会考虑使用分批次来提取和处理数据。所以实际上需要我们关注和使用mysql是使用buffer还是不使用buffer的场景非常少。

“PHP中MySQL操作的Buffer用法详解”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: PHP中MySQL操作的Buffer用法详解

本文链接: https://lsjlt.com/news/60748.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP中MySQL操作的Buffer用法详解
    本篇内容介绍了“PHP中MySQL操作的Buffer用法详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • 详解MySQL中的缓冲池(buffer pool)
    Mysql 中数据是要落盘的,这点大家都知道。读写磁盘速度是很慢的,尤其和内存比起来更是没的说。但是,我们平时在执行 SQL 时,无论写操作还是读操作都能很快得到结果,并没有预想中的那么慢。 可能你会说我有索引啊,有...
    99+
    2022-05-16
    MySQL 缓冲池 MySQL buffer pool
  • Redis在PHP应用中的Hash操作详解
    Redis是一款高性能的内存数据库,在Web应用中具有广泛的应用。而在PHP应用中,可以通过使用Redis扩展扩展来使用Redis的功能。其中,Redis的Hash数据结构在PHP应用中应用广泛,本文将详细讲解通过Redis扩展使用Redi...
    99+
    2023-05-15
    PHP redis Hash操作
  • mysql中change buffer的作用是什么
    MySQL中的change buffer是用来缓存对InnoDB表的插入、更新和删除操作的数据结构。它的作用是延迟对磁盘的写入操作,...
    99+
    2024-05-15
    mysql
  • mysql语法之DQL操作详解
    目录简单查询运算符查询排序查询聚合查询分组查询分页查询一张表查询结果插入到另一张表SQL语句分析DQL小练习1DQL小练习2正则表达式总结DQL(Data Query Languag...
    99+
    2024-04-02
  • PHP 中点的作用及用法详解
    PHP 中点的作用及用法详解 在PHP中,点(.)被称为连接符或者字符串连接运算符。它的作用是用来连接两个字符串,将它们合并为一个新的字符串。在实际开发中,点是常用的字符之一,它能够帮...
    99+
    2024-04-02
  • 详解python中的IO操作方法
    目录python文件I/Oraw_input函数input函数打开和关闭文件open 函数file对象的属性close()方法write()方法read()方法Python with...
    99+
    2024-04-02
  • Python中操作mysql的pymysql模块详解
    前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。 本文测试python版本:2.7.11。mys...
    99+
    2022-06-04
    详解 模块 操作
  • MySQL数据库中表的操作详解
    目录1.mysql中的数据类型2.创建数据表3.删除表4.插入数据5.更新数据6.删除数据7.快速复制表8.快速删除表数据1.Mysql中的数据类型 varchar 动态字符串类型(最长255位),可以根据实际长度来动态...
    99+
    2022-08-18
    MySQL数据库 表操作 MySQL 表 操作 MySQL数据库 表
  • Redis在PHP应用中的字符串操作详解
    Redis在PHP应用中的字符串操作详解Redis是一个高性能的NoSQL数据库,被广泛应用于Web开发中,特别是在PHP应用中。通过Redis,PHP应用可以轻松地实现字符串、列表、集合、有序集合等数据结构的操作。本文将重点介绍Redis...
    99+
    2023-05-15
    PHP redis 字符串操作
  • mysql中change buffer的用法是什么
    在MySQL中,change buffer是一种缓冲池,用于延迟执行INSERT、UPDATE和DELETE操作的物理写入。当对表进...
    99+
    2024-05-15
    mysql
  • PHP中的MySQL操作指南
    PHP是Web开发中最常用的编程语言之一,而MySQL则是最受欢迎的关系型数据库管理系统之一。在Web应用程序开发过程中,PHP的一个主要功能就是与MySQL数据库进行交互,以存储和检索数据。本文将为您提供一个基本的MySQL操作指南,以帮...
    99+
    2023-05-22
    MySQL PHP 操作指南
  • PHP操作XML的教程详解
    php操作XML <xml version="1.0" encoding="utf-8"> <article> <item> ...
    99+
    2024-04-02
  • MySQL中数据视图操作详解
    目录1.视图概述1.1创建视图1.2视图的查询2.操作视图2.1通过视图操作数据2.2修改视图定义2.3删除视图1.视图概述 视图是从一个或多个表(或视图)导出的表。视图与表(有时为...
    99+
    2022-11-13
    MySQL数据视图操作 MySQL 视图操作 MySQL 视图
  • MySQL中读页缓冲区buffer pool详解
    目录Buffer poolbuffer pool组成free链表缓存页的哈希处理flush链表的管理LRU链表刷新脏页多个buffer pool实例动态调整buffer pool大小...
    99+
    2024-04-02
  • PostgreSQL将数据加载到buffer cache中操作方法
    我们都知道数据在缓存中访问远比在磁盘中访问速度要快,那么我们怎么在pg中将指定的数据加载到缓存中呢,这有点类似于Oracle的in-memory。 当然要注意并不是把数据加载到内存中...
    99+
    2024-04-02
  • SQLPlus命令操作用法详解
    SQLPlus是进行Oracle操作的主要前台工具,用户名和密码分别为用户名和密码,连接ORACLE数据库 可见,显示的比较混乱,可以通过以下命令优化 这个操作是对数据库直接操...
    99+
    2024-04-02
  • 详解Golang中的除法取整操作方法
    Golang除法取整的方法详解 一、介绍在Golang编程中,对于除法运算有时需要取整的操作。如果想要将一个浮点数除以另一个浮点数并把结果取整,可使用Golang提供的math包中的相关函数。 二、向下取整向...
    99+
    2024-01-29
    Golang 取整 除法
  • PHP操作Redis详解案例
    $redis = new Redis();connect, open 链接redis服务参数host: string,服务地址port: int,端口号timeout: float,链接时长 (可选, 默认...
    99+
    2024-04-02
  • python中的mysql数据库LIKE操作符详解
    LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。 语法: SELECT column_name(s) FROM table_name WHERE column_name LI...
    99+
    2022-05-21
    python mysql like操作符 python like操作符
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作