昨天发现了系统的性能问题,于是乎开发人员问我,你有好的建议吗?我竟然一脸懵逼。
看来,多让别人提问你可以提高自己的水平,于是本人陷入沉思,如何该提高系统的性能?
容哀家好好思考一番:
一般来讲,系统是由哪几个方面组成的?数据库、应用、网络组成的,那应该从这三方面去定位和提升。
- 数据库:数据库的选择mysql/sqlserver/oracle/mogdb,配置,几核的cpu,连接数。
数据的处理:数据备份、数据离线处理
SQL的写法:主键、索引、分库分表,临时表,查询时候不能用*,sql中用函数,无条件查询。
sql的监控:mysql采用开启慢查询方法,用户可以自己设置慢查询的时间,去日志中看。
oracle用awr报表查看。
- 应用 1、内存泄漏、线程死锁、不安全线程,方法将循环改为批量,线程池配置不够。
利用redis或者定时job去实现一些功能。
如何提高:
1、数据库的选择,一个项目不同模块对应不同的库表
2、中间件的使用:redis、mq、定时任务
3、集群部署、容器部署。