`
DepthJava
  • 浏览: 20830 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

查询优化与视图

SQL 
阅读更多

查询记录可以有多种方法,但是不同的方法在效率上有着千差万别.

在记录多的情况下,尤为明显.

下面举一个例子
表1 articles:字段(id   title    time    posterID)

表2  users  :字段(id    name    password)

查询某人编辑的所有文章的标题.

假设表articles 有3000条记录   users有100条记录

方法一:
SELECT title  FROM article,users  WHERE posterID = users.id AND users.name='XX';

方法二:
SELECT title FROM article WHERE posterID IN (SELECT id FROM users WHERE name = 'XX');

这两个语句的执行结果是一样的.但效果却有很大的区别

方法一使用链接,计算这个语句是在3000 * 100 = 30 0000 记录中查找与条件匹配的记录.

方法二很简单,先是在表users  100条记录中查找匹配的id,然后再在article 3000条记录中找
即3000 + 100 =3100

相差近100倍.如果有索引那更快.


---------------------------------------------------------------------------------------------------------------------

在n种中你选择了最好的方法了,但是这是最好的方法吗?

如果哪天你发现,还有个更好的方法那怎么办?

改!那么你就要把所有的程序里的sql语句重新写过.烦!

而最好的办法是,建立一个视图.

程序的所有操作基于视图.像上例 可以建立一个 仅 title字段的视图.

CREATE VIEW  v_title AS ( SELECT title  FROM article,users  WHERE posterID = users.id AND users.name='XX';)

而程序设计中都用select title from v_title;

当发现一个更好的查询方法后,你只要修改视图.而程序不用修改,就能运行了.

CREATE VIEW  v_title AS (SELECT title FROM article WHERE posterID IN (SELECT id FROM users WHERE name = 'XX'))

分享到:
评论

相关推荐

    MySQL数据库查询优化

    MySQL是怎么优化视图的?从而明白在MySQL中怎么写与视图相关的查询语句才能有好的效果? 什么是等价谓词重写?MySQL中怎么写WHERE子句有利于提高查询效率? 预计时间1小时 第6课 查询优化技术理论与MySQL实践(四)...

    SQL Server索引视图及性能提高简介

    从数据库管理系统 (DBMS) 的观点来看,视图是数据(元数据)的说明。创建典型视图时,通过 SELECT ...在视图扩展之后,查询优化器会为正在执行的查询编译单个执行计 划。 如果是非索引视图,视图在运行时将被实体化。

    北邮数据库实验8 数据查询分析优化实验

    3. 熟悉了解视图和with临时视图的创建,观察视图查询、with临时视图查询的执行计划。 4. 参照文档“数据库物理设计及查询优化”中SQL语句查询优化相关内容,在多种情况下,对比实现方式不同但查询结果相同的等价SQL...

    googlemonkey FF Firefox 系列 优化 Google 查询视图

    googlemonkey FF Firefox 系列 优化 Google 查询视图 googlemonkey FF Firefox 系列 优化 Google 查询视图

    百万数据级快速查询优化技巧

    百万数据级快速查询优化技巧,数据库快速查询所遵循的方法。

    ListView性能优化之视图缓存

    ListView性能优化之视图缓存

    SQL 优化之 oracle物化视图

    物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。

    浅析利用Oracle物化视图对查询优化.pdf

    浅析利用Oracle物化视图对查询优化.pdf

    提高sql查询速度优化

    SQL查询优化,进行适当的优化,运行速度有了明显地提高

    PostgreSQL查询优化.pdf

    PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS)支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。现在用户越来越多...

    Oracle复杂视图优化案例分析

     Oracle的视图分为简单视图和复杂视图两种,简单视图是从单一的表中获取数据,其中不包含函数和数据组等,复杂视图是指在视图定义中包括了聚合函数、分析函数、用户自定义函数、多表关联、子查询等。此类视图在...

    pb使用树型视图控件对数据库查询的优化.doc

    pb使用树型视图控件对数据库查询的优化

    基于Oracle物化视图的查询性能优化.pdf

    基于Oracle物化视图的查询性能优化.pdf

    iOS视图显示优化

    高清版本的书,用iPad mini 阅读很舒适,详细介绍了iiOS系统视图优化的方向

    细说SQL Server中的视图

     视图是由一个查询所定义的虚拟表,它与物理表不同的是,视图中的数据没有物理表现形式,除非你为其创建一个索引;如果查询一个没有索引的视图,Sql Server实际访问的是基础表。  如果你要创建一个视图,为其指定...

    清除sqlserver无效的视图及存储过程

    sqlserver存储过程,视图多,项目不断优化升级,部分存储过程,视图已经报错,但是一直存在数据库中,用vs2013及以上打开项目,运行清理无效的视图,存储过程

    SQL Server数据库查询速度慢原因及优化方法

     3、没有创建计算列导致查询不优化。  4、内存不足  5、网络速度慢  6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)  7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)  8、sp_...

    SQLServer2008查询性能优化 2/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    大学毕业论文---基于元数据的数据仓库性能优化系统.doc

    在数据仓库中,为了提高性能,使用的一项技术是创建汇总,汇总使特定类型的聚集视图, 通过在执行和存储数据到表以前,预先计算大的...查询重写用于基于成本的优化。-------------大学生毕业论文--------(数据挖掘)

    Sql 查询性能优化

    使用性能监视器、SQL Trace以及动态管理视图和函数建立性能基线 理解一般系统中发生瓶颈的...SQL Server 2008查询性能优化》不是理论书籍,它的目的是帮助你避免数据库出现性能低下的状况,它还能帮助你保住你的工作。

Global site tag (gtag.js) - Google Analytics