mysql存储过程的if判断有多个条件该怎么优化效率

mysql存储过程的if判断有多个条件该怎么优化效率,第1张

这个应该不会太慢吧,我建议你看一下,你是不是循环做了太多次的插入/更新 *** 作。

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咯。

-- 如果是单纯的SQL

SELECT a.name FROM tableA a LEFT JOIN tableB b ON A.id = b.id AND b.logintime<='2016-04-21 14:20:00'

-- 方法一 这种嵌套 尽量少用

-- 方法二 过多的查询 尽量少用

-- 不过总的来看 这些查询都要根据具体业务和实际情况来查询的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7669714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存