1、造成性能问题的原因
cpu真的很忙(1%)
IO问题(99%)db操作
解决IO问题
(1)DB操作(2)redis操作(3)网络访问(4)本地磁盘文件系统
DB操作:降低访问次数,提高访问性能(合理的索引),数据吞吐不要过大
redis:尽量合并操作,用pipline,pipe.execute()
网络访问要设置超时
本地文件系统几百几千扫描,一般都能接受
2、开发效率守则
(1)涉及到大量数据的一定要注意索引性能
(2)原则上禁止在循环中进行数据库操作
(3)尽量避免在用户操作中立即进行第三方网络服务(设置超时)
(4)能一次完成的redis操作,尽量使用pipline完成
(5)慎重使用数据互斥行和表锁定机制
3、使用多进程
避免多线程造成的诸多风险和问题(主要是资源的共享和锁的问题)
要求每个进程尽快完工。不得占用资源太久