-1. 一句在吗,直接别搭理;不想做的事,直接拒绝别拖着,学着自己改掉讨好型人格。
0. 开发的时候或者工作的时候:手机静音、戴上耳机(就算不听歌,也给我戴着)。
1. 常量数据一般都定义在contants文件中,为了以后修改方便,不需要更改源代码。
2. 配置文件信息,尽量注释然后添加,别删除原有配置。
3. 使用数据库时,先备份数据库,然后在本地导入备份文件,先操作本地数据库,确保本地数据库没有错误以后再操作远端数据库。
4. 使用Redis数据库时,如果需要执行多条语句的话,采用管道可以提高效率(性能优化)。
5. 首页或不常变动的数据可以做成静态化或缓存,这样可以提高用户的访问速度,并且能够降低数据库的压力。(性能优化)
6. 使用Flask框架时,db(数据库对象)必须先定义再使用(注意导包位置), 如果db(数据库对象)、app(Flask对象)定义在报的init文件中,再导入db和app时,需要添加.__init__才能不出错。
例如:
from app.user.__init__ import db
7. 当Git出现头指针丢失的情况时,不需要慌,只需要使用如下指令即可解决,但是解决不了Pycharm没办法push的问题。
git push origin HEAD:分支名(master/dev)
8. 数据库中字段类型int后接的位数不是表示范围,而是0填充的意思;
int(3):表示3位数,不满用0填充,009;
int(6):表示6位数,不满用0填充,000009;
int表示整型数字,int后面的()不影响范围。
9. 数据库中保存金钱字段使用decimal类型。
10. 字符串类型字段最好设置一个默认值,default '' 设置个默认值为空字符串,可以提高查询效率。
11. GIT克隆仓库dev分支
git clone -b 分支名 HTTP地址/SSH地址
GIT创建分支
git checkout -b 分支名
让分支与远端仓库建立联系
git push -u origin 分支名
12. Git分支合并
git branch # 查看分支
git checkout master # 切换分支
git merge dev # 将dev分支合并到当前分支
git push
13. 缓存优化:
先将数据保存到服务器内存中,再将服务器内存同步到Redis中,避免用户直接和Redis进行交互,提高性能。
缓存数据只缓存静态数据。
14. 缓存穿透问题:
缓存只是为了缓解数据库压力而添加的一层保护层,当从缓存中查询不到我们需要的数据就要去数据库中查询了。如果被黑客利用,频繁去访问缓存中没有的数据,那么缓存就失去了存在的意义,瞬间所有请求的压力都落在了数据库上,这样会导致数据库连接异常。
1. 采用布隆过滤器,判断传递的数据是否满足逻辑。
2. 如果缓存数据不存在,给缓存设置个默认值。
15. 缓存雪崩问题
缓存雪崩是指缓存不可用或者大量缓存由于超时时间相同在同一时间段失效,大量请求直接访问数据库,数据库压力过大导致系统雪崩。
解决方案:
1、给缓存加上一定区间内的随机生效时间,不同的key设置不同的失效时间,避免同一时间集体失效。
比如以前是设置10分钟的超时时间,那每个Key都可以随机8-13分钟过期,尽量让不同Key的过期时间不同。
2、采用多级缓存,不同级别缓存设置的超时时间不同,及时某个级别缓存都过期,也有其他级别缓存兜底。
3、利用加锁或者队列方式避免过多请求同时对服务器进行读写操作。
16. 统计代码执行时间
%time # 统计当前行代码执行时间 %%time # 统计当前代码段执行时间
%%time:必须写在代码端的第一行。
import random import time import numpy as np a = [] for i in range(100000000): a.append(random.random()) # 通过%time魔法方法, 查看当前行的代码运行一次所花费的时间 %time sum1=sum(a) b=np.array(a) %time sum2=np.sum(b)