码迷,mamicode.com
首页 > 数据库 > 详细

Django-数据库访问优化

时间:2017-10-27 01:48:19      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:bsp   tle   try   pytho   auto   索引   imp   nbsp   设置   

数据库访问优化

使用标准数据库优化技巧

  1. 索引。我们可以使用Field.db_index或者Meta.index_together在Django中添加索引,优先向经常使用filter(),exclude(),order_b()等查询的字段添加索引,帮助我们更快的查找。
  2. 合理使用字段类型

 

了解QuerySets

 

在数据库中而不是python中做数据工作

 

用唯一的被索引的列来检索独立对象

 

一次性检索你需要的任何东西

 

不要检索你不需要的东西

批量插入

创建对象的时候,尽可能使用bulk_create()来减少SQL查询的数量。此方法以高效的方式(通常只有1个查询,无论有多少对象)将提供的对象列表插入到数据库中:,例如:

Entry.objects.bulk_create([
    Entry(headline=This is a test),
    Entry(headline=This is only a test),
])

优于:

Entry.objects.create(headline=This is a test)
Entry.objects.create(headline=This is only a test)

注意 :

  • 将不会调用模型的save()方法,并且不会发送pre_savepost_save信号。
  • 它不适用于多表继承场景中的子模型。
  • 如果模型的主键是AutoField,则不会像save()那样检索并设置主键属性,除非数据库后端支持(当前是PostgreSQL)。
  • 它不适用于多对多关系。

这也可以用在ManyToManyField中,所以:

my_band.members.add(me, my_friend)

优于

my_band.members.add(me)
my_band.members.add(my_friend)

 

Django-数据库访问优化

标签:bsp   tle   try   pytho   auto   索引   imp   nbsp   设置   

原文地址:http://www.cnblogs.com/richiewlq/p/7739727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!