提高django model效率的几个小方法
来源:互联网 发布:fifa18球员数据查询 编辑:程序博客网 时间:2024/06/03 16:00
django的model效率不是很高,特别是在做大量的数据库操作的时候,如果你只用django来开企业站或者外包项目的话,那可以小跳过下,而你恰巧是效率狂或者说是对程序的效率要求比较高的话,那就要注意下面的几个方法。
1.count()方法
我们想用count方法来获取记录的条数可以采用下面的方法:
num = info.objects.filter('...').count()
我们来看下djangomodel模块里面count方法是怎么写的?
def count(self):
"""
Performs a SELECT COUNT() and returns the numberof records as an
integer.
If the QuerySet is already fully cached thissimply returns the length
of the cached results set to avoid multipleSELECT COUNT(*) calls.
"""
if self._result_cache is not None and notself._iter:
return len(self._result_cache)
return self.query.get_count(using=self.db)
从上面的看来,djangmodel的count()要执行SELECT COUNT()语句,其实是查询了下数据库,这样如果记录比较多的情况下,
查询数据库的效率还是比较高的.
比如我们可以用len()方法来求长度的话,使用的迭代,效果更低。
info = info.objects.filter('...')
num = len(info)
2.多用切片
比如我们要查询数据的话,如果你的数据量比较大的情况下,你没有限定要查询的范围,对系统的开销会非常的大,比如你要分页的显示新闻数据,那你就要按照一页要显示多少数据,就读取多少数据,而不是一次起把数据全部给读出来,然后再根据限定的条件来显示的数据。比如你要显示前10条的新闻的话按照下面的方法来做:
news =News.objects.all()[1:10]
而不是: news = News.objects.all() news =news[1:10]
因为 news =News.objects.all()
news = news[1:10]
- 提高django model效率的几个小方法
- 提高 Python 运行效率的几个方法
- WinScp几个极大提高开发效率的小功能
- 提高博客点击率的几个小方法
- 提高搜索引擎的的效率的几个方法
- 提高PHP程序运行效率的四个小方法
- 几个提升JSP应用程序效率的小方法
- 提高搜索引擎的效率的几个弊端
- iOS开发之总结几个提高开发效率的小技巧
- 提高ASP.NET效率的几个方面
- 提高ASP.NET效率的几个方面
- 几个建议,提高你的读书效率!
- 提高sql效率的方法
- 提高数据库效率的方法
- 提高查询效率的方法
- 提高数据库效率的方法
- 一个提高渲染效率的小技巧
- 一个提高渲染效率的小技巧
- CCF-相反数-201403-1
- 二叉树的深度
- HDU1037 - Keep on Truckin' (简单题)
- 异常处理(try catch)
- 程序员养成记
- 提高django model效率的几个小方法
- [LinkerScript.1] 基本的链接器脚本概念 - Basic Linker Script Concepts
- 使用qsort进行字符串数组排序
- DIR 命令 详解
- CCF-出现次数最多的数-201312-1
- 【dfs+回溯】hdu 2553 N皇后问题
- keySet和entrySet的区别
- 猜数字 -- 暴力法
- [宏]_IOC_NR, _IOC_TYPE, _IOC_SIZE, _IOC_DIR