微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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';

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐