sql优化
mysql客户端/服务端是半双工,都是要么服务器==》客户端,客户端 ==》服务端
查询语句过长,需要设置max_allowed_packet参数,太大,会跑出异常;
mysql处理过程
很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已
mysql的优化器基于成本判断,选择最小成本的一个,并不一定最快的一个。
- 视图设计和数据类型优化
- 创建高性能的索引
- 索引对应的数据结构和算法优化
- 避免多个范围条件
- 覆盖索引
- 使用索引扫描排序
- 优化count()查询
- 优化union
总结下上面:
- 索引
- 数据类型
- 简单的函数条件判断减少
请还是以实际开发中的遇到的问题,选择适合的优化,否则,与业务无关的优化,都是耍流氓!
优化sql语句是很重要的,但是对于整个系统来说,优化的方向,更应该是系统中的应用服务,减少数据库方面的函数调用,用服务解决函数问题,更容易提高性能,减少数据库压力。
谨记:数据库就是存储数据的,是最不要计算的地方!
参考博客:https://www.cnblogs.com/liujiacai/p/7605612.html
select* 和select 全部字段有什么区别
从执行效率上,一般的sql语句解析都有缓存,没有什么差距。select * 可能会查询 Query Table Metadata For Columns(查询元数据表的列),可能会增加数据库压力,实际上,并没有什么不同!
从实际开发,优化开发角度,* 不容易让其他程序员看懂返回的具体数据有哪些,很不友好!(你要是嚣张,坚持* 的道路吧!)
建议:* 这种查询方式,适合在程序开发测试以及demo的时候,其他时间尽量写清返回的字段名
springboot的优势
- 编码简单==用java config配置方式配置spring,提供大量注解
- 配置简单==超多的默认配置,很多jar间的版本都会选用稳定的,不用自己注意jar冲突
- 部署简单==不用tomcat等web容器,内置tomcat,jetty,undertow三种容器
- 监控简单==提供了actuator包,可以使用它来对你的应用进行监控。
缺点:入门级的微服务
- 集中式application.yml,这种配置不安全,不适合企业级的集中式的配置管理系统,不同配置严格分区存放
- 监控系统的认证方式简单,不安全。
- 在服务发现、注册没有的
如何启动springboot
- 在开发阶段:启动springboot 的start类
- 在部署阶段:
- maven方式
- java -jar jar包名