首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将SQL优化做到极致 - 查询优化

从成本可见,显然不合并成本更低*/ 3.解嵌套子查询 解嵌套子查询是指在对存在嵌套子查询复杂语句进行优化时,查询转换器会尝试将查询展开,使得其中表能与主查询表关联,从而获得更优执行计划。...在8i9i,如果star_transformation_enabled=true,则非嵌套时被禁用(即使用了提示)。...这里NA,实际表示Null-Aware意思,在11g及以后版本,Oracle增加了对空敏感反关联支持*/ 3)关联查询解嵌套 在对于关联查询解嵌套过程,会将查询构造出一个内联视图...这里使用了嵌套循环,每一个EMP表记录,都对应一次查询查询,获得MAX*/ 5.查询分解 所谓查询分解,是指由WITH创建复杂查询语句存储在临时表,按照与一般表相同方式使用该临时表功能...从概念上来看它与嵌套视图比较类似,但各自有其优缺点。优点在于查询如果被多次引用,使用嵌套视图就需要被执行多次,尤其在海量数据满足条件结果非常少得情况下,两者差别很明显。

4.2K91

Django相关知识点回顾

return HttpResponse('hello world') 2.1.2url地址配置 1.先在应用创建urls.py文件,设置当前应用url地址视图对应关系。...3.MVT模式(Model模型、View视图、Template模板) 5.URL配置 Django默认url配置风格是在末尾加 /,在应用中进行url地址配置时候,建议严格匹配开头结尾。...删除 查询对象->对象.delete() 或者: 模型类.objects.filter(...).delete() 查询 模型类.objects.查询函数 查询相关函数: 函数名称 参数 作用 返回...例:查询id大于3图书数量 BookInfo.objects.filter(id__gt=3).count() exists:判断查询集中是否有数据 两大特性 惰性查询: 只有在使用查询集中数据时才会进行数据库真正查询操作...查询结果缓存 使用同一个查询集时,只有在第一次使用查询集时会进行数据库查询操作,然后Django框架就会把查询结果存起来,下一次再使用这个查询集时,使用Django之前存储结果。

10K51
您找到你想要的搜索结果了吗?
是的
没有找到

django 1.8 官方文档翻译: 2-5-4 聚合 (初稿)

然而,你有时候会想要获取从一组对象导出或者是聚合一组对象。这份指南描述了通过Django查询来生成返回聚合方法。 整篇指南我们都将引用以下模型。这些模型用来记录多个网上书店库存。...当annotate()子句被指定之后,QuerySet每个对象都会被注上特定。 这些注解语法都aggregate()子句所使用相同。... 跨关系查找方法类似,作用在你所查询模型关联模型或者字段上聚合注解可以遍历”反转”关系。...像使用其他模型字段一样,注解也可以在filter()exclude() 子句中使用别名。...与默认排序或order_by()交互 在查询集中order_by() 部分(或是在模型默认定义排序项) 会在选择输出数据时被用到,即使这些字段没有在values() 调用中被指定。

1.6K30

django框架菜鸟教程_django框架菜鸟教程

views.py 文件用于编写Web应用视图。 注册安装应用 注册安装一个应用方法,即是将应用配置信息文件apps.pyConfig类添加到INSTALLED_APPS列表。...[ # 每个路由信息都需要使用url函数来构造 # url(路径, 视图) url(r’^index/$’, views.index), ] 在工程总路由demo/urls.py添加应用路由数据...# 使用include来将应用users里全部路由包含进工程路由中 # r'^users/' 决定了users应用所有路由都已/users/开头,如我们刚定义视图index,其最终完整访问路径为...五、类视图与中间件 1、类视图 定义:使用类来定义视图 好处: 可读性好 更高复用性 使用 from django.view.generic import View 配置路由时,使用视图as_view...():判断查询集中是否有数据,有返回Ture,无返回False 2、特性 惰性执行:创建查询时候不会调用数据库,调用数据时候访问,迭代、序列化、if合用 缓存 3、限制查询集 对查询集进行下标或切片操作

3K40

Django 模型查询2.3

简介 查询集表示从数据库获取对象集合 查询集可以含有零个、一个或多个过滤器 过滤器基于所给参数限制查询结果 从Sql角度,查询select语句等价,过滤器像wherelimit子句 接下来主要讨论如下知识点...():返回第一个对象 last():返回最后一个对象 exists():判断查询集中是否有数据,如果有则返回True 限制查询查询集返回列表,可以使用下标的方式进行限制,等同于sqllimit...,[0:1].get()引发DoesNotExist异常 查询缓存 每个查询集都包含一个缓存来最小化对数据库访问 在新建查询集中,缓存为空,首次对查询集求值时,会发生数据库查询django会将查询结果存在查询缓存...,但是如果这部分不在缓存,那么接下来查询返回记录将不会被缓存,这意味着使用索引来限制查询集将不会填充缓存,如果这部分数据已经被缓存,则直接使用缓存数据 字段查询 实现where名,作为方法filter...,会合并为And进行 需要进行or查询使用Q()对象 Q对象(django.db.models.Q)用于封装一组关键字参数,这些关键字参数与“比较运算符”相同 from django.db.models

2.3K20

重点内容回顾-DRF

MySQL数据库修改表数据: update 表名 set 字段名=要改 [where 查询指定数据条件] update tb_users set email_active=0 where id...数据库查询 属性: queryset(指定视图使用查询集) 方法: get_queryset返回视图使用查询集 get_object从视图使用查询集中查询指定对象,默认根据pk进行查询。...如果视图集中只想提供listretrieve接口时候,可以继承此父类。...5.6.4视图集中添加额外处理方法 1.直接在视图集定义额外处理方法即可 2.在进行url配置时候也要指定请求地址请求方式处理函数之间对应关系。...返回latest操作使用查询集 else: # 返回其他操作所使用查询集 5.6.6路由Router 作用 配合视图集进行使用,动态生成视图集中处理函数url配置项。

2.4K20

数据库原理及应用(六)——视图查询

表是内模式,视图是外模式。 视图可以像基本表一样被查询、删除,也可以在一个视图上再定义视图,但是对视图增删改有一定限制。 三、视图定义删除 1....='CS'; 2.删除视图 SQL语言用DROP VIEW删除视图: DROP VIEW ; 视图删除后,基于该视图建立视图仍在数据字典,不过无法使用,需要一一删除它们。...2.嵌套子查询 例4 查询年龄大于19岁学生信息: SELECT * FROM ( SELECT * FROM s WHERE sage > 19 ) AS S5 虽然嵌套子查询可以查询出结果...,但是随着查询嵌套层数叠加,SQL语句不仅会难以理解而且执行效率也会很差,所以要尽量避免这样使用。...3.标量子查询 标量就是单一意思,那么标量子查询也就是单一查询,那什么叫做单一查询呢? 所谓单一就是要求我们执行SQL语句只能返回一个,也就是要返回表具体某一行某一列。

53410

使用联接查询查询数据

--Chapter 3 使用联接查询查询数据 --内容提要 go /* (一)、使用联接查询数据 1. 内联接 2. 外联接 3. 交叉联接 4....自联接 */ go /* (二)、使用查询查询数据 1. 使用比较运算符,INEXISTS关键字 2. 使用修改过比较运算符 3. 使用聚合函数 4....使用套子查询 5. 使用关联查询 6. APPLY运算符 */ go /* (三)、管理结果集 1. 并集,交集差集 2. 临时结果集 3....,显示NULL --(2)右外联接 - 返回RIGHT OUTER JOIN 右侧所有行,以及左侧指定匹配行,若左边找不到匹配项,显示NULL --(3)完整外联接 - 左外联接右外联接组合...使用套子查询 --查询里面可以包含一个或多个子查询,这样叫做嵌套子查询 --问题:查询工资最高员工编号 HumanResources.EmployeePayHistory select * from

2.2K60

Django 聚合与查询集API实现侧边栏

聚合产生来源于django数据库查询,通常我们使用django查询来完成增删查改,但是有时候需要更复杂方法才能完成对数据提取、筛选、更改,所以需要一组对象聚合来完成这种操作。...当annotate()子句被指定之后,QuerySet每个对象都会被注上特定。这些注解语法都aggregate()子句所使用相同。...__startswith="Django").annotate(num_authors=Count('authors')) # 使用annotate() 子句时,过滤器有限制注解对象作用。...顺序,将给每个作者添加一个唯一字段,但只有作者名称average_rating 注解会返回在输出结果 4.查询集(QuerySet)API 查询 本质上,可以创建、过滤、切片传递查询集而不用真实操作数据库...exclude():返回一个新QuerySet,它包含不满足给定查找参数对象。 annotate(*args, **kwargs): 使用提供查询表达式Annotate查询集中每个对象。

1.4K20

SQL Server基础SQL脚本之内外连接、交叉连接;函数、查询

=b.EmployeeID --根据其主管员工编号找到对应职位 ---------------------- (二)、使用查询查询数据----------------------------...--查询:将一个select查询结果作为另外一个select查询输入/条件,查询里面的查询 --1....使用聚合函数 --问题:查询RDBMS成绩最高学生学号RDBMS成绩 --4....使用套子查询 --查询里面可以包含一个或多个子查询,这样叫做嵌套子查询 --问题:查询工资最高员工编号 HumanResources.EmployeePayHistory select * from...使用关联查询 - 根据外部查询作为评估依据查询 --问题:查询每个部门最早加入员工信息 select * from HumanResources.EmployeeDepartmentHistory

2.3K40

Django DRF路由与扩展功能实现

视图集与路由使用 使用视图集ViewSet,可以将一系列逻辑相关动作放到一个类: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据...P<pk \d+)/$", views.Student9ModelViewSet.as_view({"get": "retrieve"})), ] """ 有了视图集以后,视图文件多个视图类可以合并成一个...GenericViewSet时,虽然已经提供了基本调用数据集(queryset)序列化器属性,但是我们要编写一些基本 API时,还是需要调用DRF提供模型扩展类 [Mixins] """ from...扩展功能 为了方便接下来学习,我们创建一个新应用 opt python3 manage.py startapp opt 因为接下来功能需要使用到登录功能,所以我们使用django内置admin...使用方法: 在类视图中设置filter_backends,使用rest_framework.filters.OrderingFilter过滤器,REST framework会在请求查询字符串参数检查是否包含了

3K30

Django&DRF重点内容大盘点

2)返回时候用到了 HttpResponse这一命令返回响应对象 1.3.2url地址配置 1.在应用urls.py文件设置当前应用url地址视图对应关系 urlpatterns =...[ url(r'^url正则表达式$',views.视图函数名) ] 2.在项目总urls.py文件包含应用urls.py文件 urlpatterns = [ url(r'^'...使用Django框架提供method_decorator将针对函数视图装饰器添加到类视图方法上面 # 为全部请求方法添加装饰器 @method_decorator(my_decorator, name...filter, exclude参数可以写查询条件 格式: 属性名__条件名= 注意:可以写多个查询条件,默认是且关系 F对象 用于查询时字段之间比较 from django.db.models...使用 1)在配置文件设置配置项MEDIA_ROOT='上传文件保存目录' 2)定义模型类时,图片字段类型使用 ImageField 3)迁移生成表并在admin.py注册模型类,直接登录Admin

5.9K20

第 9 篇:实现分类、标签、归档日期接口

一是 action 装饰器,它用来装饰一个视图集中方法,被装饰方法会被 django-rest-framework 路由自动注册为一个 API 接口。...视图集中所有以上提及以标准动作命名方法,都会被 django-rest-framework 路由自动注册为标准 API 接口。...category,tags 两个过滤字段因为是 Post 模型定义字段,因此 django-filter 可以自动推断其过滤规则,只需要在 Meta.fields 声明即可。...由于这两个字段在 Post 没有定义,Post 记录时间字段为 created_time,因此我们需要显示地定义查询规则,定义规则是: 查询参数名 = 查询参数值类型(查询模型字段,查询表达式...) 例如示例定义 created_year 查询参数,查询参数值类型为 number,即数字,查询模型字段为 created_time,查询表达式是 year。

2.6K30

python技术面试题(三)

9.浏览器接收到服务器Controller返回html页面之后进行解析展示。 下面再谈一下MVT模型: M:Model,模型MVCM功能相同,和数据库进行交互。...V:View,视图MVCC功能相同,接收请求,进行处理,与MT进行交互,返回应答。 T:Template,模板,MVCV功能相同,产生html页面。 ?...# 属性名称比较运算符间使用两个下划线,所以属性名不能包括多个下划线 属性名称__比较运算符= # exact:表示判断 EthanYan.objects.filter(id__exact=1...# Q(属性名__运算符=) from django.db.models import Q # 查询阅读量大于20,或编号小于3文章,只能使用Q对象实现 XiaoYanBiJi.objects.filter...1) # 多对应模型类对象.关联类属性_id note.xiaoyanbiji_id # 由多模型类条件查询模型类数据 关联模型类名小写__属性名__条件运算符= # 如果没有“__运算符”部分

1.1K20

37.Django1.11.6文档

Django 提供F表达式 来允许这样比较。 F() 返回实例用作查询内部对模型字段引用。 这些引用可以用于查询filter 来比较相同模型实例上不同字段之间比较。...这份指南描述通过Django 查询来生成返回聚合方法。 整篇指南我们都将引用以下模型。 这些模型用来记录多个网上书店库存。...当annotate()子句被指定之后,QuerySet每个对象都会被注上特定。 这些注解语法都aggregate()子句所使用相同。...反向 在你所查询模型关联模型或者字段上聚合注解可以遍历"反转"关系。...像使用其他模型字段一样,注解也可以在filter()exclude() 子句中使用别名。

24.3K80

这些经常被忽视SQL错误用法,你踩过几个坑?

所以程序员在开发过程,一定要认真仔细,确保查询变量字段类型匹配。 优化方案 保证传入参数类型字段定义类型一致。...(join),所以有些时候你会发现嵌套子查询效率关联查询效率差不多。...优化方案 将嵌套子查询改为 JOIN 之后,查询选择模式从嵌套子查询(DEPENDENT SUBQUERY) 变成了关联查询(DERIVED),执行速度大大加快 UPDATE operation o...八、条件下推 外部查询条件不能够下推到复杂视图查询情况有: 聚合子查询; 含有 LIMIT 查询; UNION 或 UNION ALL 查询; 输出字段查询; 如下面的语句,从执行计划可以看出其条件作用于聚合子查询之后...不难看出查询 c 是全表聚合查询,在表数量特别大情况下会导致整个语句性能下降。 其实对于查询 c,左连接最后结果集只关心能主表 resourceid 能匹配数据。

71840

Django框架学习(一)

Model模型、View视图、Template模板) Model模型:操作数据库 View视图:接收请求,进行业务处理、返回响应 Template模板:封装构造要返回html,展示页面内容 3、MVT...,相应对象,传入响应内容就可以了 3、在应用下面创建一个文件urls.py,然后创建一个urlpatterns列表,然后再列表里面添加当前应用url地址视图函数对应关系url("url正则表达式...在应用中进行url地址配置时,建议严格匹配开头结尾(防止访问时,视图混乱情况,框架程序找错对应视图函数) 4.3url地址反向解析 作用:根据视图函数动态获取对应url,一般配合重定向时使用...Django使用方法: 1、在应用地址配置时定义一个name参数,指明路由名字 2、在总地址配置里面进行包含时候,定义一个namespace,一般名字应用名字一样(注意写在include...method:一个字符串,表示请求使用HTTP方法,常用包括:'GET'、'POST' user:请求用户对象。 path:一个字符串,表示请求页面的完整路径,不包含域名参数部分。

2.1K20

一杯茶时间,上手 Django 框架开发

因此,这一步我们将: •在视图(View)写一点业务逻辑•接入路由,使其能够被访问 Django 路由系统 Django 路由系统是由全局路由应用路由组成。...:表达式插、条件语句循环语句。...SQL 是用于访问处理数据库标准计算机语言,但是直接写在代码里面显然难以维护,而且对使用要求也非常高,写糟糕 SQL 代码查询效率非常低下。...在视图中添加数据查询 最后,我们在视图中加入从数据库查询代码: from django.shortcuts import render from .models import Post def...Django 还有很多很多高级玩法,例如数据模型高级查询、字段索引、更换数据库等等,模板继承机制、内部标签等等,还有视图中如何处理各类请求(POST、PUT等),我们会在后续更多教程逐一为大家讲解

1.5K21
领券