PHP-一个MySQL或MariaDB事务中可以使用多少个查询

一个MySQL / MariaDB事务中可以使用几个查询

事务中使用的查询数量是否有限制?目前,我已经对一个大型ZF1项目进行了测试,该交易具有175,000个查询,并且工作正常!

该事务将每月执行一次,但是将来可以增加查询数量.

增加交易量时,查询数量是否有限制,或者存在性能问题?

$db = Zend_Db_Table_Abstract::getDefaultAdapter();

// begin database transaction
$db->beginTransaction();

try {
    // here comes the bulk processing with insert, update and delete queries
    $this->monthlyBatchProcessing();

    // commit all changes
    $db->commit();
} catch (Exception $ex) {

    // rollback changes upon exception
    $db->rollBack();

    throw $ex;
}

解决方法:

有关innodb_log_buffer_size,请参见手册页.该设置通常认为8M或16M.

查看您当前的尺寸:

SHOW VARIABLES LIKE "%innodb_log_buffer_size%";

可以将其设置为GB范围.缺点是,它占用了系统内存.好处是,在将其刷新到磁盘之前,可以将更多的东西塞入其中.因此,磁盘I / O被推迟并以较大的块完成,而不是更频繁的较小块.

较高的值将提供更好的性能,这与大文件副本的性能明显好于相同数据大小但文件超过100至1000的文件没有什么不同.当然,这是对其的过度简化.事务仍然需要处理innodb日志本身的开销.

要查看日志缓冲区被视为过小的次数(“在继续之前刷新该缓冲区的次数”):

SHOW GLOBAL STATUS LIKE 'innodb_log_waits';

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...