当前位置: 首页 > news >正文

传媒公司网站网站上线方案

传媒公司网站,网站上线方案,自由空间网站建设,网文订阅做多的网站下面以创建10000个对象为例进行测试#xff1a; # 用for循环挨个创建#xff0c;共花费37秒 for i in range(10000): nameString number %s%i Record.objects.create(namename) # 用django事务只提交一次#xff0c;共花费2.65秒 transaction.commit_manually d… 下面以创建10000个对象为例进行测试 # 用for循环挨个创建共花费37秒 for i in range(10000): nameString number %s%i Record.objects.create(namename) # 用django事务只提交一次共花费2.65秒 transaction.commit_manually def manual_transaction(): for i in range(10000): nameString number %s%i Record.objects.create(namename) transaction.commit() # 用bulk_create创建,共花费0.47秒 def builtin(): insert_list [] for i in range(10000): nameString number %s%i insert_list.append(Record(namename)) Record.objects.bulk_create(insert_list) # 用for循环挨个更新共花费72秒: def auto_transaction(): for record inRecord.objects.all(): record.name String without number record.save() # 用django事务只提交一次共花费17秒 transaction.commit_manually def manual_transaction(): for record inRecord.objects.all(): record.name String without number record.save() transaction.commit() # 用update更新,共花费0.33秒 def builtin(): Record.objects.all().update(nameString without number) 补充知识django的model使用上容易遇到的坑defaultdatetime.now和auto_now、null和blank、save和update、bulk_create 一、django设置字段动态默认时间的四种方式 from django.db import models from datetime import datetime class User(models.Model): id models.BigAutoField(主键, primary_keyTrue) name models.CharField(名字, max_length20, db_indexTrue, default) create_time_one models.DateTimeField(创建时间, defaultdatetime.now()) update_time_one models.DateTimeField(更新时间, defaultdatetime.now) create_time_tow models.DateTimeField(创建时间, auto_now_addTrue) update_time_tow models.DateTimeField(更新时间, auto_nowTrue) 1. defaultdatetime.now() model每次初始化都会自动设置该字段的默认值为初始化时间。 2. defaultdatetime.now model每次进行新增或修改操作都会自动设置该字段的值为操作时间。设置后仍可以使用ORM手动修改该字段。 3. auto_now_addTrue 默认值为False若设置为Truemodel每次进行新增操作都会自动设置该字段的值为操作时间。设置为True后无法使用ORM手动修改该字段哪怕填充了字段的值也会被覆盖。 4. auto_nowTrue 默认值为False若设置为Truemodel每次进行新增或修改操作都会自动设置该字段的值为操作时间。设置为True后无法使用ORM手动修改该字段哪怕填充了字段的值也会被覆盖。 5. 要注意的点 除非想设置动态默认时间为项目的启动时间否则defaultdatetime.now()这种用法是错误的会得到期望之外的结果。 使用User.objects.update方法时设置的defaultdatetime.now和auto_nowTrue都不会生效由于设置了auto_nowTrue的字段不能手动修改此时只能使用save方法修改数据这对于多个数据的更新是不友好的。 因此如果设置动态默认时间的字段应该使用defaultdatetime.now和auto_now_addTrue来实现。 二、nullTrue和blankTrue的区别 1. null针对数据库如果nullTrue表示数据库的该字段可以为空。 2. blank针对表单的如果blankTrue表示表单填写该字段时可以不填。 mysql中空值不占用空间NULL占用空间而且使用NULL会使索引的效率下降。因此从性能上来说不建议使用nullTrue最好使用default。 三、save和build_create的区别 1. 使用save方法 names [张三, 李四] for name in names: user User(namename) user.save() print(user.id) # 此时user对象有id的值 2. 使用bulk_create方法 names [张三, 李四] users [User(namename) for name in names] users User.objects.bulk_create(users) print([user.id for user in users]) # 此时user对象没有id的值 bulk_create的优点 批量操作时只与数据库进行一次交互效率高。 bulk_create的缺点 对于设置了自增的字段返回值中不会有该字段的值如上例2中的user对象。 对于设置了动态默认时间的字段如设置了auto_nowTrue同一批处理的记录中该字段的时间将会相同。 四、上面的知识点使用的例子 1. 定义模型 from django.db import models from datetime import datetime class User(models.Model): id models.BigAutoField(主键, primary_keyTrue) name models.CharField(名字, max_length20, db_indexTrue, blankFalse, default) create_time models.DateTimeField(创建时间, auto_now_addTrue) update_time models.DateTimeField(更新时间, defaultdatetime.now) 2. 插入数据 # 方法一 names [张三, 李四] users [User(namename) for name in names] users User.objects.bulk_create(users) # 方法二 names [张三, 李四] users [User(namename) for name in names] [user.save() for user in users] 3. 修改数据 # 方法一 names [张三, 李四] User.objects.filter(name__innames).update(namechanged, update_timedatetime.now()) # 这里必须显式对update_time赋值 # 方法二 names [张三, 李四] users User.objects.filter(name__innames) for use in users: user.name changed user.save() # 这里会自动更新update_time但是多次save效率低 以上这篇Django bulk_create()、update()与数据库事务的效率对比分析就是小编分享给大家的全部内容了希望能给大家一个参考也希望大家多多支持我们。 本文标题: Django bulk_create()、update()与数据库事务的效率对比分析 本文地址: http://www.cppcns.com/jiaoben/python/313421.html
http://www.w-s-a.com/news/58489/

相关文章:

  • 网站制作需求分析电商网站建设浩森宇特
  • 淄博网站建设招聘摄影网站建设的论文
  • 怎么把凡科网里做的网站保存成文件网站建设研究的意义
  • 服务器2003怎么做网站网站建设服务器的配置
  • 高校网站建设方案网站推广软件下载安装免费
  • 重庆没建网站的企业网站开发软件 连接SQL数据库
  • 百度申诉网站沉默是金
  • 如何自己建网站wordpress图片延时加载
  • 甘肃省住房和城乡建设厅注册中心网站千博企业网站管理系统2013
  • 西餐厅网站模板seo搜索引擎优化ppt
  • 什么做的网站吗wordpress注册可见插件
  • 献县做网站价格可以提升自己的网站
  • 如何修改网站title建设网站只能是公司
  • 网站推广效果怎么样建设工程公司组织架构图
  • 成都制作网站价格表网站安全证书过期怎么办
  • 高校图书馆网站的建设方案湖南常德市
  • 房地产怎么做网站推广wordpress插件汉化下载
  • 一般pr做视频过程那个网站有无锡网络公司平台
  • 安徽网站推广系统网站根目录权限设置
  • 班级网站建设需求智慧校园登录入口
  • asp.net网站发布到虚拟主机电商设计网站哪个好
  • 做的网站怎么转成网址链接企业为什么要找会计
  • 关于建设网站的情况说明书文化建设方面的建议
  • 订票网站开发公司大通证券手机版下载官方网站下载
  • 网店美工的意义与发展佛山推广seo排名
  • 网站在建设中模板自助云商城
  • 珠海网站设计建建建设网站公司网站
  • 广州高端网站制作公司哪家好网页制作公司 软件
  • 最快做网站的语言百度站长反馈
  • 简单网站设计价格手机网站技巧