文档章节

mysql union

t
 tystys
发布于 2017/07/24 22:22
字数 274
阅读 5
收藏 1

两种方式加速UNIONs 

1.用union all  而不是union(允许的话) 

UNION ALL is much faster than UNION

union 原理:

表一

[code]
blue
green
gray
black
[/code]

表二:

[code]
red
green
yellow
blue
[/code]

 UNION两表;

mysql首先会排序俩表数据到临时表;

 

[code]
black
blue
blue
gray
green
green
red
yellow
[/code]

然后去重

[code]
black
blue
gray
green
red
yellow
[/code]

See also: Mythical MySQL DBA – the talent drought.

 UNION ALL则是

[code]
blue
green
gray
black
red
green
yellow
blue
[/code]

不用排序|不用去重|

 .

2. Use Push-down Conditions to speedup UNION in MySQL

 表一

[code]
blue 2013
green 2013
green 2012
gray 2011
black 2009
black 2011
[/code]

表二

[code]
red 2012
red 2013
green 2011
yellow 2010
blue 2011
[/code]

查找2013年数据

[code]
(SELECT type, release FROM short_sleeve)
UNION
(SELECT type, release FROM long_sleeve);
WHERE release >=2013;
[/code]

See also: 5 More Things Deadly to Scalability and the original 5 Things Toxic to Scalability..

Here the WHERE clause works on this 11 record temp table:

[code]
black 2009
black 2011
blue 2011
blue 2013
gray 2011
green 2013
green 2012
green 2011
red 2012
red 2013
yellow 2010
[/code]

But it would be much faster to move the WHERE inside each subquery like this:

如果放进里面:速度会快很多

[code]
(SELECT type, release FROM short_sleeve WHERE release >=2013)
UNION
(SELECT type, release FROM long_sleeve WHERE release >=2013);
[/code]

 

© 著作权归作者所有

共有 人打赏支持
t
粉丝 2
博文 72
码字总数 82272
作品 0
MySQL UNION

在本教程中,我们将学习如何使用MySQL UNION操作符从多个SELECT语句将两个或多个结果集组合成一个结果集。 MySQL UNION操作符 MySQL UNION运算符允许您从多个表查询出来的两个或多个结果集组...

易百教程
2016/09/14
3
0
继续测试博客

1. 背景 全并查询结果是将多个 select 语句的查询结果合并到一起。 参与合并的结果集需要字段统一。 * 字段可以用空字符串''代替。 2. 合并查询结果实战 [ users1 and users2 ] * 查看 user...

zhangguis
2017/07/10
0
0
继续测试博客

1. 背景 全并查询结果是将多个 select 语句的查询结果合并到一起。 参与合并的结果集需要字段统一。 * 字段可以用空字符串''代替。 2. 合并查询结果实战 [ users1 and users2 ] * 查看 user...

zhangguis
2017/07/10
0
0
继续测试博客

1. 背景 全并查询结果是将多个 select 语句的查询结果合并到一起。 参与合并的结果集需要字段统一。 * 字段可以用空字符串''代替。 2. 合并查询结果实战 [ users1 and users2 ] * 查看 user...

zhangguis
2017/07/10
0
0
mysql常用命令及SQL语句

UPDATE user0 SET phone=REPLACE(phone,'13800','14400') //把phone中的13800替换为14400 select id,birth from userview WHERE birth LIKE CONCAT('%',SUBSTR(DATEFORMAT(CURRENTDATE(),'%Y......

xiejunbo
2014/12/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ES6 Promise

Promise promise是异步编程的一种解决方案 1 什么是异步? 异步模式,每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则...

NDweb
18分钟前
0
0
Python百分登顶年度编程语言排行榜

今天 IEEE Spectrum 发布了 2018 年度顶级编程语言排行榜。该榜单可根据流行趋势、职业方向、语言类型等多个标准各自细分生成榜单,也可以综合多个标准进行排列,使用者可以根据自己的需求过...

六库科技
22分钟前
0
0
consul笔记

安装和启动就不说了,很简单。 注册一个服务: http://localhost:8500/v1/agent/service/register put请求,json格式内容如下 { "ID": "userServiceId", //服务id "Name": "userService", //服...

朝如青丝暮成雪
22分钟前
0
0
iOS CollectionView 的那些事

UICollectionView是开发中用的比较多的一个控件,本文记录UICollectionView在开发中常用的方法总结,包括使用UICollectionViewFlowLayout实现Grid布局、添加Header/Footer、自定义layout布局...

aron1992
22分钟前
0
0
linux tar.gz zip 解压缩 压缩命令

http://apps.hi.baidu.com/share/detail/37384818 download ADT link http://dl.google.com/android/ADT-0.9.6.zip download SDK link http://dl.google.com/Android/android-sdk_r11-linux_......

owensliu
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部