gpt4 book ai didi

PHP/MySQL(i) use_result、store_result 和 MyISAM 表锁

转载 作者:可可西里 更新时间:2023-11-01 08:37:47 33 4
gpt4 key购买 nike

我已经阅读了各种来源(如 thisthisthis 之一)关于 use_result()(无缓冲查询)和 store_result() 之间的区别(缓冲查询)并且还知道 MySQL 保持对数据的锁定(在 MyISAM 的情况下锁定整个表)直到所有结果都已发送到客户端。

我不明白的是,为什么 use_result()(无缓冲)查询 MySQL 比 store_result()(缓冲)查询保持锁定的时间更长。为什么使用 store_result() 与使用 use_result() 并自己进行缓冲(到 PHP 数组中)有如此不同?

最佳答案

当使用 store_result() mysql 驱动程序(写在比 php 更低的级别)时,将数据从服务器传输到客户端并释放锁。

当使用 use_result() 并在数组中进行缓冲时,您需要创建一个 php 循环,并且由于 php 是一个解释器,因此循环速度较慢,因此每次获取行之间都会有延迟。

为了看到这个延迟测量执行所花费的时间差

for (i = 0; i < 100000; i++) {} 

phpc 之间>

一般来说,php 代码比 c 代码慢,而 php 扩展和内部函数是用 c 代码编写的,所以使用扩展或内部函数总是比用 php 代码编写相同的算法更快

关于PHP/MySQL(i) use_result、store_result 和 MyISAM 表锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5753948/

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