先说背景。
近来在弄一个物联网的系统,上线一段时间后,随着设备接入量的上升,数据爆棚,然后运行缓慢,查看mysql 已忙的要烧掉CPU,换了阿里的RDS,还是不行,(在这吐槽下:不好的方面1 还没有我自建的DB快,原因不确定。 2 DTS 确实很快,但需要注意检查,他会偷工减料的。好的方面,服务还算可以,五天无理由退款很霸气)
使用多种方案无效,不再啰嗦。
解决:
1 mybatis 我忘记了添加延迟加载,怪不得没查大表也这么慢(主要问题点)
2 更换部分表引擎为myIsam,以提升频繁的插入效率
3 优化SQL
详细说下mybatis延迟加载的部分。
网上有很多关于这个的文章,但就是一脸懵逼。现留笔记记录备用
结构和配置:maven + spring +springmvc+mybatis +mysql5.5
再发下 spring-mybatis.xml 部分
这里 有一点需要注意:
2 结点是模糊扫描,1 结点引入一次,2 结点如果不排除1结点的引入会报重复引入错误的
接着发下mybatis-config.xml 。这个网上就较多了
最后发下依赖,没有这个会报错。pom.xml 部分
以上就是我在我的mybatis 添加延迟加载的全部。
感谢:https://blog.csdn.net/zjttlance/article/details/80110246
另。1mysql 表的引擎可以直接在Navicat中修改,对,就是直接改,数据大的话会慢点,但可以直改
2 mysql 的一个错误:1044-Access denied for user 'root'@'localhost' to database
可以直接navicat 找 mysql 库的user表直接改,但要记得重启
详细:https://blog.csdn.net/rain_bridge/article/details/52938751
就这些了,留个笔记备用。发现哪里有问题或不合适的地方,望大神评论里指证。