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

柳州市网站制作公司/中国域名网官网

柳州市网站制作公司,中国域名网官网,怎么建购物网站,一流设计网站1. DISTICT优化 MySQL支持对于DISTINCT的优化,下面通过示例具体说明。 示例1 MySQL支持对于DISTINCT消除的优化技术。 沿用14.1.8节示例4的用例,在有主键的e1列上执行DISTINCT,查询执行计划如下: mysql> EXPLAIN SELECT DISTIN…

1. DISTICT优化

MySQL支持对于DISTINCT的优化,下面通过示例具体说明。

 

示例1 MySQL支持对于DISTINCT消除的优化技术。

沿用14.1.8节示例4的用例,在有主键的e1列上执行DISTINCT,查询执行计划如下:

mysql> EXPLAIN SELECT DISTINCT e1 FROM E;

+----+-------------+-------+-------+------+-------------+

| id | select_type | table | type  | key  | Extra       |

+----+-------------+-------+-------+------+-------------+

|  1 | SIMPLE      | E     | index | e2   | Using index |

+----+-------------+-------+-------+------+-------------+

1 row in set (0.00 sec)

从查询执行计划看,在表E上执行索引扫描(type列的值为index),用以完成去重的任务。这表明MySQL利用索引这个特性对DISTINCT进行优化(注意,索引扫描的过程中MySQL没有使用主键索引而是选择了e2列上的索引)。

 

示例2 MySQL不支持对于DISTINCT推入的优化技术。

例如a2列是唯一列,又处于反半连接的语义(NOT EXISTS),完全可以把DISTINCT下推到表t_o2中先执行,然后再执行反半连接操作,查询执行计划如下:

mysql> EXPLAIN EXTENDED SELECT DISTINCT b1 FROM t_o1 WHERE NOT EXISTS (SELECT 1 FROM t_o2 WHERE b1=a2);

+----+--------------------+-------+------+------+------------------------------+

| id | select_type        | table | type | key  | Extra                        |

+----+--------------------+-------+------+------+------------------------------+

|  1 | PRIMARY            | t_o1  | ALL  | NULL | Using where; Using temporary |

|  2 | DEPENDENT SUBQUERY | t_o2  | ref  | a2   | Using index                  |

+----+--------------------+-------+------+------+------------------------------+

2 rows in set, 2 warnings (0.02 sec)

被查询优化器处理后的语句为:

/* select#1 */ select distinct `tt2`.`t_o1`.`b1` AS `b1`

from `tt2`.`t_o1`

where (

    not(exists(

        /* select#2 */ select 1

        from `tt2`.`t_o2`

        where (`tt2`.`t_o1`.`b1` = `tt2`.`t_o2`.`a2`)

    ))

)

从查询执行计划看,表t_o1上使用了临时文件进行DISTINCT操作,而子查询存在没有被消除,这表明DISTINCT操作没有被推入到表t_o2中先执行,所以MySQL不支持DISTINCT推入技术。

 

示例3 MySQL支持对于DISTINCT迁移的优化技术。

例如a1a2列是唯一列,查询执行计划如下:

mysql> EXPLAIN EXTENDED SELECT DISTINCT * FROM t_o1, t_o2 WHERE a1=a2;

+----+-------------+-------+------+------+------------------------------+

| id | select_type | table | type | key  | Extra                        |

+----+-------------+-------+------+------+------------------------------+

|  1 | SIMPLE      | t_o1  | ALL  | NULL | Using where; Using temporary |

|  1 | SIMPLE      | t_o2  | ref  | a2   | NULL                         |

+----+-------------+-------+------+------+------------------------------+

2 rows in set, 1 warning (0.00 sec)

从查询执行计划看,使用了临时文件完成DISTINCT操作,且把DISTINCT移入连接操作前在表t_o1上执行,所以MySQL支持DISTINCT迁移技术。
http://www.jmfq.cn/news/4913479.html

相关文章:

  • 简述网站建设及维护的全过程/seo外包推广
  • 视频直播网站怎么做/指数型基金是什么意思
  • 网络设计图纸是什么/山东进一步优化
  • 建站公司费用/排名第一的手机清理软件
  • 玉林城乡住房建设厅网站/海南百度推广电话
  • wordpress插件pdf/seo的优化策略有哪些
  • 易语言网站做软件/百度seo教程网
  • 家用电脑做网站/名片seo什么意思
  • h5响应式网站制作/网站搭建流程
  • 免费招聘网站招聘/下载百度2023最新版
  • 我的网站域名是什么/社群运营的经典案例
  • 个人备案的网站涉及到资金/在线生成个人网站源码
  • 做p2p网站案例/朝阳区搜索优化seosem
  • wordpress注册邮件/seo高级优化方法
  • 网站建设 南通/独立网站
  • 网站怎么做边框/简述网站建设的基本流程
  • 宁波seo在线优化方案公司/好搜seo软件
  • 网站怎样做wap端/上海百度推广优化
  • 南阳网站推广公司/做网站公司排名
  • 建设银行网站会员怎么用/铜仁搜狗推广
  • 浦东新区建设和交通委员会网站/兰州网站seo诊断
  • 网站建设合同范本-经过律师审核/seo综合查询接口
  • 网站建设如何做用户名密码/seo推广技巧
  • 专业集团网站建设/谷歌chrome浏览器
  • 重庆网址/seo优化轻松seo优化排名
  • 网站建设方案的征求意见/百度网盘搜索入口
  • 网林时代网站建设/seo是什么意思啊
  • 大型的网站开发/站长之家是什么网站
  • 球形网架公司/成都做整站优化
  • WordPress做的网站源代码/百度推广怎么运营