mysql的left jion改写not in或not exists
来源:互联网 发布:古永锵 知乎 编辑:程序博客网 时间:2024/05/22 05:22
需求:查询数据库gip_demo比数据库epmp多的表和字段:
1.优先考虑使用not exist:
SELECTa.table_name,a.column_nameFROMinformation_schema.COLUMNS aWHEREa.TABLE_NAME REGEXP '^s_'AND a.TABLE_SCHEMA = 'gip_demo'and NOT EXISTS (SELECT1FROMinformation_schema.COLUMNS bWHERETABLE_NAME REGEXP '^s_'AND TABLE_SCHEMA = 'epmp'AND a.column_name = b.column_nameAND a.table_name = b.table_name);
查询时间:54.67s
2.使用not in:
select a.table_name,a.column_name from (SELECTi.table_name,i.column_nameFROMinformation_schema.COLUMNS iWHEREi.TABLE_NAME REGEXP '^s_' AND i.TABLE_SCHEMA = 'gip_demo') a where (a.table_name,a.column_name)not in(SELECTb.table_name,b.column_nameFROMinformation_schema.COLUMNS bWHERETABLE_NAME REGEXP '^s_'AND TABLE_SCHEMA = 'epmp');
执行时间:40.341s
3.使用left join:
SELECT a.table_name na,a.column_nameFROM(SELECTa.table_name,a.column_nameFROMinformation_schema. COLUMNS aWHEREa.TABLE_NAME REGEXP '^s_'AND a.TABLE_SCHEMA = 'gip_demo') aleft JOIN (SELECTb.table_name,b.column_nameFROMinformation_schema. COLUMNS bWHEREb.TABLE_NAME REGEXP '^s_'AND b.TABLE_SCHEMA = 'epmp') b ON a.table_name = b.table_name AND a.column_name = b.column_name WHEREb.table_name IS NULL;执行时间:0.730s
总结:sql语句并没有铁律说用什么方式实现就一定会快,一定要看使用场景。
阅读全文
0 0
- mysql的left jion改写not in或not exists
- NOT IN改为LEFT JOIN或NOT EXISTS的实现
- NOT IN改为LEFT JOIN或NOT EXISTS的实现
- In ,not In 或 Exists ,not Exists 的用法
- sql----改写 in ,exists,not in ,not exists
- sql not in、left join、not exists
- mySql:in,exists,not exists
- not in、not exists 及用join改写
- not in / not exists /外连接 互相改写
- SQL 中NOT EXISTS的改写
- not in,not exists,left join性能对比
- NOT IN NOT EXISTS LEFT JOIN/ IS NULL
- mysql not exists 和 not in对比
- IN、EXISTS和LEFT JOIN,NOT IN、NOT EXISTS和INNER JOIN在存在与不存在的查询效率
- IN、EXISTS和LEFT JOIN,NOT IN、NOT EXISTS和INNER JOIN在存在与不存在的查询效率
- IN、EXISTS和LEFT JOIN,NOT IN、NOT EXISTS和INNER JOIN在存在与不存在的查询效率
- 大数据量下not in, not exists, left join的比较
- NOT IN、NOT EXISTS的相关子查询改用LEFT JOIN--sql2000性能优化
- Maven学习(六)- 构建Hibernate项目
- 事件监听
- IO流丶序列化与反序列化
- Maven依赖管理
- <Bat>批处理删除.svn文件夹
- mysql的left jion改写not in或not exists
- canvas粒子时钟
- PHP过滤相同key ,去掉重复key值
- 关于http请求头host字段中的port
- smarty使用指南
- Lua之实现跨平台移动开发
- elastic-job架构的解密
- 阿里云教程
- 阿里百川笔记