
mysql默认的配置中,每次事务提交都要写binlog和redo log,如果循环太多次——比如循环插入10w条记录——就会非常慢。一般优化思路分两种:
1 修改 sync_binlog为一个100-1000间的值,让binlog每隔100-1000个事务后再写一次;修改innodb_flush_log_at_trx_commit =2; 这么搞的好处是降低了写log的次数和消耗的时间,缺点是,中间出错的话,会丢失一部分的binlog和redolog导致无法通过他们来在出问题是恢复生产库数据。
2 将所有的插入/更新 *** 作放到一个事务中进行。这样,显然就只需要一次写binlong和redolog咯。
mysql 触发器 if语句用法@sqlz ='select asd from flkg'
EXECUTE(@sqlz)
----------
首先,mysql下动态语句不是这样写的,另外,触发器里不能允许返回结果集的.
这里我是希望他能中断更新!
应该这样写吧:SELECT COUNT(*) FROM tougao_record WHERE accept_company_id=100 AND channel_type=1 AND check_status=6
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)