项目开发经验之谈
一、开发须知
1. 数据库真实数据量
这个非常重要
- 数据多少条
- 多少kb
- 执行一次多长时间
比如说
中信银行资产配置系统
收益率表:每天8万多条数据,如果没有备份历史数据,会出现什么问题,消耗多少磁盘空间,是否可行;
2. 查看日志
关于查看日志的所以linux命令都要熟记,非常重要
3. 查看服务器性能
3.1 服务器性能相关命令
cpu
内存
进程数
IO
4. 每次数据传输数据量
4.1 数据库分页查询
想一想数据库为什么要分页查询;
每次查询数据量过大,会不会导致内存溢出;
4.2 http请求数据分页拉取数据
4.3 每次数据交互量(kb)、耗时
二、任务执行时间过长
1. 硬件相关
cpu
内存
io
2. 程序设计相关
2.1 数据库性能
01 sql是否执行缓慢
sql优化相关;
02 是否需要加索引
根据sql语句,尽可能的走索引查询;
比如:非空判断能不能在程序中判断,或者在sql中使用别的值代替null,想办法走索引;
03 表设计是否有问题
2.2 采用并发编程
了解服务器cpu的核数,线程数,根据实际业务方案设置合理的线程数执行任务;
2.3 使用缓存
对于频繁查询数据库的数据放入到缓存;
2.4 功能拆分
比如说任务中有些东西是可以预处理的,不用加入到该任务中,这部分功能提取出来,预处理,然后在执行任务,减少任务执行时间;