当前位置: 首页 > news >正文

连云港网站建设案例/网站推广的作用

连云港网站建设案例,网站推广的作用,西安自助建站做网站,wordpress 新增8.1.1 视图重写 PostgreSQL有一个模块,称为规则模块,用以处理规则。规则系统把查询修改为需要考虑规则的形式,然后把修改过的查询传递给查询优化器执行。视图被作为规则的子部分,在此被处理。所以,PostgreSQL通过规则模…

8.1.1 视图重写

PostgreSQL有一个模块,称为规则模块,用以处理规则。规则系统把查询修改为需要考虑规则的形式,然后把修改过的查询传递给查询优化器执行。视图被作为规则的子部分,在此被处理。所以,PostgreSQL通过规则模块(pg_rewrite_query函数)支持逻辑查询优化的视图重写,也就是把视图用视图的定义替代,视图定义在SQL中相当于子查询。PostgreSQL统一对子查询进行优化。

PostgreSQL支持简单视图重写和复杂视图的重写,支持对带有简单视图重写后的SQL语句进行优化,但

支持对带有复杂视图重写后的SQL语句做优化。下面我们通过四组针对视图的查询实例进行对比,以帮助读者掌握PostgreSQL对视图重写的支持情况。

首先让我们做一些准备性的工作。

创建表,命令如下:

CREATE TABLE t1 (a1 int UNIQUE, b1 int);

CREATE TABLE t2 (a2 int UNIQUE, b2 int);

CREATE TABLE t3 (a3 int UNIQUE, b3 int);

创建简单视图,命令如下:

CREATE VIEW v_t_1_2 AS SELECT * FROM t1, t2;

创建复杂视图,命令如下:

CREATE VIEW v_t_gd_1_2 AS SELECT DISTINCT t1.b1, t2.b2 FROM t1, t2 GROUP BY t1.b1, t2.b2;


示例1 在简单视图上执行连接操作。

直接用视图和表做连接操作,查询执行计划如下:

test=# EXPLAIN SELECT * FROM t1, v_t_1_2 WHERE t1.a1<20;
                                      QUERY PLAN
------------------------------------------------------------------
 Nested Loop  (cost=0.00..250291.15 rows=20000000 width=24)
   ->  Nested Loop  (cost=0.00..273.65 rows=20000 width=16) //两个t1连接后才与t2连接
         ->  Seq Scan on t1  (cost=0.00..15.00 rows=1000 width=8) //视图中的t1顺序扫描
         ->  Materialize  (cost=0.00..8.70 rows=20 width=8) //FROM子句中的t1索引扫描后物化
               ->  Index Scan using t1_a1_key on t1  (cost=0.00..8.60 rows=20 width=8)
                     Index Cond: (a1 < 20)
   ->  Materialize  (cost=0.00..20.00 rows=1000 width=8)
         ->  Seq Scan on t2  (cost=0.00..15.00 rows=1000 width=8)
(8 行记录)

从查询执行计划看,视图v_t_1_2的名称没有出现,而且视图中的t1表和原先的t1表先进行连接,t2表被最后连接,这说明视图被重写,重写后的视图定义部分作为子查询被上拉处理,上拉后的查询语句已经只是三个表(t1t1t2)之间进行连接了。

另外,对于条件“a1 < 20”,只在一个t1表被索引扫描时被使用,没有能在t1表被顺序扫描时使用,且t1表被扫描2次,不能有效利用物化的结果,PostgreSQL对于这种情况有待改进。

等价于上一条视图的子查询,没有视图存在,查询执行计划如下:

test=# EXPLAIN SELECT * FROM t1, (SELECT * FROM t1, t2) t12 WHERE t1.a1<20;
                                      QUERY PLAN
------------------------------------------------------------------
 Nested Loop  (cost=0.00..250291.15 rows=20000000 width=24)
   ->  Nested Loop  (cost=0.00..273.65 rows=20000 width=16)
         ->  Seq Scan on t1  (cost=0.00..15.00 rows=1000 width=8)
         ->  Materialize  (cost=0.00..8.70 rows=20 width=8)
               ->  Index Scan using t1_a1_key on t1  (cost=0.00..8.60 rows=20 width=8)
                     Index Cond: (a1 < 20)
   ->  Materialize  (cost=0.00..20.00 rows=1000 width=8)
         ->  Seq Scan on t2  (cost=0.00..15.00 rows=1000 width=8)
(8 行记录)

从查询执行计划看,本条子查询语句的查询执行计划与上一条基于视图的查询语句的查询执行计划完全相同,这表明二者是完全等价的,PostgreSQL支持对简单视图的重写。
http://www.jmfq.cn/news/5243653.html

相关文章:

  • 重庆市建设工程造价站/佛山优化推广
  • qq钓鱼网站在线生成器/南宁seo外包服务
  • wordpress jsdelivr/班级优化大师下载安装最新版
  • 百度推广自己做网站/seo优化专员招聘
  • 仿照别的网站做/全国疫情最新
  • 网站设计什么样风格会高端些/长春网站建设技术托管
  • 石家庄新闻媒体求助热线电话/网站seo优化技能
  • 上海开发网站/合肥百度搜索优化
  • wordpress 站点语言/免费的网络推广有哪些
  • 视频网站为什么有人做/b2b网站源码
  • 德州网站建设哪家好/网站搜索排名查询
  • 电子商务网站毕业论文/搜索引擎优化的内容包括
  • 禅城网站建设价格/seo入门培训教程
  • 子网站如何做/站长之家ppt素材
  • 免费真人做爰网站/青岛seo百科
  • ckeditor 转wordpress/seo网站自动推广
  • 博客型网站建设/seo网站的优化流程
  • 广东网站建设哪家好/廊坊网站建设优化
  • 保险做的好的网站有哪些内容/安卓优化大师最新版
  • 上海圣品科技 做网站/免费的h5制作网站模板
  • 长安手机网站建设/怎样做好销售和客户交流
  • 做系统的网站/怎么开网站
  • 虚拟主机建网站/网店推广方式有哪些
  • 公司网站建设及维护/上海优化营商环境
  • 网站结构分析怎么做/潍坊关键词优化排名
  • 长春网站排名优化报价/优化seo设置
  • 做菠菜网站代理犯法吗/湖南seo优化排名
  • 公共空间设计网站/九幺seo优化神器
  • seo平台代理/重庆seo团队
  • 做tcf法语听力题的网站/关键词网站排名软件