文档说明
本文档仅对在使用sqltoy中的一些技巧和使用心得体会的描述,详细使用请参考官方文档。
开源地址
- github: https://github.com/sagframe/sagacity-sqltoy gitee:
- https://gitee.com/sagacity/sagacity-sqltoy
- IDEA开源插件地址: https://gitee.com/threefish/sqltoy-idea-plugins
技术分享
缓存功能
- 使用方法
参考官方文档 - 场景分析
- 列表查询往往需要关联字典、编码、组织等配置信息,可利用缓存翻译优化,减少表join数量,提高性能
- 前端页面下拉选择,树形选择等常常对应后端字典、编码、组织等配置信息,这种场景也可优先选择缓存优化
对象操作
- 使用方法
参考官方文档 - 注意事项
-
对一些重要信息的更新保存,要注意事务控制,避免脏数据录入,同时有效业务日志的输出能有效保证错误排查的效率
-
对于批量操作请尽可能使用saveAll,不要使用for循环,这样有利于提高新能(注意,saveAll批次不要过大。过大可考虑异步处理方案)
-
对于默认值,不要过分依赖数据库中的默认值,除统一填充的字段外,其他字段尽可能在编码阶段给到明确的值,比如一些登记,标识等字段
SQL查询
- 使用方法
参考官方文档 - 使用帮助
- 查询单对象:请查询load操作
- 查询单值: 请查阅get操作
- 查询LIST: 请查阅find操作
- 执行自定义更新SQL:请查阅execute操作
常用标签
- 使用方法
参考官方文档 - 使用建议
- value标签
将sql尽可能使用value标签包裹,利于sqltoy插件语法提示(idea安装sqltoy插件自行百度) - @value
一些数值类型字段尽可能使用@value,避免不必要的类型转换,利于性能优化 - @loop
在in的场景下注意param的size和所使用的版本,详情查阅官方文档
性能优化
- 常见总结
- 缓存翻译,缓存查询
- 列表查询count重写,同参数缓存
- 批量操作saveAll
- 并行查询
- 多表关联,子表的查询条件可以使用在关联语句后面,减少join数量,提高性能