mysql 使用心得

总结一些工作中碰到的点,会持续更新,有问题欢迎留言
sql调优
1:索引太多会影响插入效率,索引太多很可能是表设计不合理
2:索引尽量唯一,并且索引检索数据行尽量小
3:尽量设计统一字符集,表、字段字符集不一致索引不生效
4:锁表的问题基本上把update语句 where条件改为主键或者索引列就解决了

事务相关
1:尽量使用read commit隔离级别(很多乐观锁的场景我们需要retry,这个时候rc级别才能保证retry是有用的)
2:嵌套事务和隔离基本密切相关,不要看网上的文章。最好自己根据项目测试
3:事务包裹的方法尽量只处理数据库操作,防止大事务

数据库连接池
1:连接数要根据系统压测调优,正常情况不应该过大
2:show variables like ‘%timeout%’ 查看数据库配置超时时间等参数做对应的连接池配置
3:尽量配置固定大小的连接池,减少释放、创建连接的消耗。idle\max 参数设置一样,根据对应连接池配置做调整
4:获取连接超时基本都是慢sql导致,根据慢sql报表对sql做调优。
5:多线程的线程数尽量小,即使是io密集型业务,涉及到数据库操作也应该设置小于数据库连接池大小的最大线程数;否则也会存在拿不到数据库连接

jdbc连接串参数
1:allowMultiQueries=true;批量提交sql,一般用在批量更新场景并且更新字段不确定
2:rewriteBatchedStatements=true;允许jdbc批量发送指令
3:cachePrepStmts=true;减少重复编译
4:prepStmtCacheSize=250;缓存sql条数
5:prepStmtCacheSqlLimit=2048;缓存的字符数
很多导入的业务,一次导入上万条数据,批量提交数据过多执行效率会慢很多;
批量更新、新增的场景,建议200条左右做一次提交和prepStmtCacheSize长度有关;提交后要根据数据库性能做适当调整

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值