工作遇坑总结

一、MySQL

1、mysql数据类型varchar,给长度20能存储20个中文汉字或英文字符串(中英文空格也占一位)

二、Django

ORM

1、select_related()

1、select_related 主要针对一对一和多对一关系进行优化
2、select_related 使用SQL的JOIN语句进行优化,减少数据库的访问次数
3、select_related 可以查找外键的字段,可以查找外键的外键。没有指定的字段不会缓存,没有指定的深度不会缓存
4、select_related 可以通过depth指定递归的深度,即外键的深度,会自动缓存指定深度内的所有字段
5、接受无参数的select_related(),django会尽可能的递归到最深。但会有递归限制、也会浪费性能

2、aggregate()

1、是聚合函数,支持聚合操作 Avg、MAx、Min、Sum等。
例:Student.objects.aggregate(Sum("age"), Avg("age"), Max("age"))
返回数据格式为字典

3、annotate()

1、是分组的意思,即group_by
例: Student.objects.annotate(Count('hobbies'))
根据学生分组再统计每个学生的爱好数量,返回的是QuerySet
2、values(‘age’).annotate() 是根据名字分组,再聚合
annotate().values(‘age’) 是聚合后取有用的字段

三、celery

1、在django中指定定时任务延期执行
T.apply_async((arg,), {‘kwarg’: value}, countdown=60, expires=120)
countdown是指定等待时间,expires是最长等待时间
2、celery异步任务中传递的参数必须可以json化

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值