django中的聚合索引
Django(元信息)元类建索引
ORM查询(sql优化)优化
自定义聚合函数
Django的元类建索引————索引:索引的一个主要目的就是加快检索表中数据,索引是经过某种算法优化过的,因而查找次数要少的多。因此,索引是用来定位的。
class Book(models.Model)
name = models.CharField(max_length=64) class Meta:
# 自定义表名
db_table = 'table_name'
# 联合索引: 索引的一个主要目的就是加快检索表中数据
index_together = ('tag1', 'tag2')
# 联合唯一索引:两个字段全部重复才算重复
unique_together = ('tag3', 'tag4')
# 排序字段
ordering = 'ordering_tag'
# /admin/中显示的表名称
verbose_name = 'table_name'
ORM查询(sql优化)优化————稍微了解一下就可以了
(1)only() 只查某些字段,要查看其他的字段,后续也能点出其他字段
uql1 = Book.objects.all().only("name","price") # 只查了 "name","price" 两个字段
Book.objects.all() # 书的所有字段都查了一遍
print(uq11.first().gender) # 后续也能点出其他字段,不过自己又重新执行了查询该字段的sql,相当于在重新查了一遍 (2)defer() 除了某些字段,其他的都查
Book.objects.all().defer("name","price") # 除了 "name","price" 两个字段,其他的字段都查 (3)values # 后续不能再点出其他字段了
Book.objects.values("name","price") # 只查了 "name","price" 两个字段
自定义聚合函数——可以去实践
from django.db.models import Aggregate, CharField
# 自定义聚合函数的名字
class Concat(Aggregate): # 写一个类继承Aggregate,
function = 'GROUP_CONCAT'
template = '%(function)s(%(distinct)s%(expressions)s)'
def __init__(self, expression, distinct=False, **extra):
super(Concat, self).__init__(
expression,
distinct='DISTINCT ' if distinct else '',
output_field=CharField(),
**extra)
eg: Book.objects.aggregate( name=Concat("name") )
django中的聚合索引的更多相关文章
- django 中的聚合和分组 F查询 Q查询 事务cookies和sessions 066
1 聚合和分组 聚合:对一些数据进行整理分析 进而得到结果(mysql中的聚合函数) 1aggregate(*args,**kwargs) : 通过对QuerySet进行计算 ,返回一个聚合值的字典. ...
- Django中ORM的聚合索引
Django中ORM的聚合索引 在Django中,聚合函数是通过aggregate方法实现的,aggregate方法返回的结果是一个字典 在使用时需要先导入模块from django.db.mod ...
- django中聚合aggregate和annotate GROUP BY的使用方法
接触django已经很长时间了,但是使用QuerySet查询集的方式一直比较低端,只会使用filter/Q函数/exclude等方式来查询,数据量比较小的时候还可以,但是如果数据量很大,而且查询比较复 ...
- 数据库中聚合索引(MySQL和SQL Server区别)
一.聚集索引和非聚集索引 聚集索引:类似字典的拼音目录.表中的数据按照聚集索引的规则来存储的.就像新华字典.整本字典是按照A-Z的顺序来排列.这也是一个表只能有一个聚集索引的原因.因为这个特点,具体索 ...
- 「Python-Django」Django中使用数据库的 9 个小技巧
Django 中使用数据库的 9 个小技巧. 1. 过滤器聚合 在 Django 2.0 之前,如果你想得到“用户总数”.“活跃用户总数”等信息时,你不得不使用条件表达式. Django 2.0 中, ...
- Django:Django中的ORM
一.Django项目使用MySQL数据库 1,在Django项目的settings.py,文件中,配置数据库连接信息: DATABASES = { "default": { &qu ...
- django中的ORM与 应用与补充
目录 django中的ORM与 应用与补充 ORM与数据的对应关系 ORM 常用字段 ORM 其他字段 自定义字段 字段参数 Model Meta参数 常用13中查询(必会) 单表查询的双下划线应用 ...
- Django中的app及mysql数据库篇(ORM操作)
Django常见命令 在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目.启动Django程序.创建新的APP.数据库迁移等. 创建Django项目 一把我们都 ...
- django中使用pandas Django-pandas
在django中使用pandas操作django的ORM查询出来的QuerySet对象,可以使用插件django-pandas. 截止教程书写时间,django-pandas已发布到0.6.1. 依赖 ...
随机推荐
- springcluoud入门
概念: Spring Cloud是一个分布式的整体解决方案. Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局琐,lead ...
- Joomla - 权限系统(访问权限限制)
Joomla - 权限系统,以下以全局配置的权限设置为例,每个扩展都有自己的权限设置
- htaccess apache重定向学习
1.推荐博客:http://www.cnblogs.com/adforce/archive/2012/11/23/2784664.html 2.测试工具:https://htaccess.madewi ...
- 牛客网在线判题系统JavaScript(V8)使用
JavaScript作为一种弱类型的编程语言,语法和C/C++.JAVA等存在差别,但是对于大部算法题,不只是C/C++.JAVA,也依然可以使用JavaScript来实现.所以在牛客网中,如果你喜欢 ...
- JS的 try catch 前端使用场景(尽管不多还是会用到)
try{ //正常执行 }catch(e/*你感觉会出错的 错误类型*/){ // 可能出现的意外 eg:用户自己操作失误 或者 函数少条件 不影响下面的函数执行 // 有时也会用在 比如 focus ...
- (转)第03节:在Canvas上插入图片并设置旋转属性
我们已经学会了在Canvas上画简单的图形,这节我们就在Canvas上加一张图片.用到fabric.Image对象把图片添加到Canvas上. HTML文件:为了效果更好看我在html里写了一些CSS ...
- 给自己立下一个flag先
恩,今天开始写博客. 其实主要原因是被人甩了,想找个事情让自己忙起来. 主要原因是“男人没钱就是无能”,我是个应届毕业生.所以你懂的. 我不喜欢让心情不爽,所以只能找事情让自己忙起来.所以我开始立Fl ...
- Jeecg-Boot前后端分离,针对敏感数据,加密传递方案
# 针对敏感数据,加密传递方案 第一步: 在vue页面引入aesEncrypt.js encryption方法.示例代码: import { encryption } from '@/utils/en ...
- typedef int (init_fnc_t) (void)和typedef int (*init_fnc_t) (void)
1.typedef int (init_fnc_t) (void);表示定义init_fnc_t为函数类型,该函数返回int型,无参数.而“init_fnc_t *init_sequence[]= ...
- 《DSP using MATLAB》Problem 7.35
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...