mysql5.6改进子查询实测试

表t1,t2

各自生成100万条记录。

表引擎  myiasm  ,查询语句

select * from t1 where id2 in (select id2 from t2 )

查询速度 2.x秒

查询语句

select t1.* from t1,t2 where t1.id2=t2.id2

查询速度2.x秒

=======================

同样的查询在5.0.x版本速度分别是

2.x秒

7.x秒

===================

速度提高了3倍的样子(和数据有关系)

======================

再使用innodb引擎。

速度最慢也有4.8秒的样子。

确实有优化。

mysql5.6改进子查询实测试

时间: 2024-10-21 09:58:11

mysql5.6改进子查询实测试的相关文章

sql子查询和嵌套查询

子查询和嵌套查询 标签: it   嵌套查询就是在外部还有一个查询. 子查询是在select 内部还有一个select 查询常常也被称为内查询 下面的错误示例: select name from [user] where age <= (select age from [user] where id>1 ) 子查询返回的值多于一个.当子查询跟随在 =.!=.<.<=.>.>= 之后,或子查询用作表达式时,这种情况是不允许的. 1.语法 子查询的句法如下: (SELECT

结合真实的测试实例,记录一次SQL语句辅助功能测试的场景(包含多表联查及子查询)

本文结合实例讲解一下 SQL 语句通过数据库辅助进行功能测试.希望阅读本文的小伙伴,能通过这个场景实例体会到SQL 语句在真实的功能测试时起到的作用 本次功能测试涉及的sql 知识点如下: 1 SELECT 查询 2 where 子句 3 count() 4 to_char() 5 group by 6 order by 7 两表联查(这里涉及left join) 8 子查询嵌套 实例中的需求文档 : 系统的测试界面:(不好意思,写文章的时候,想去截一个好一点的图片,测试环境无法登录了) 前提解

MySQL5.7性能优化系列(二)——SQL语句优化(3)——使用物化策略优化子查询

优化器使用物化策略(Materialization)来实现更有效的子查询处理.通过生成子查询结果作为临时表,通常在内存中,实现加速查询执行. MySQL首次需要子查询结果,将该结果实现为临时表.任何随后的结果都需要,MySQL再次指向临时表.优化器可以使用散列索引对表进行索引,以使查找更加快速和便宜.该索引是唯一的,它消除了重复,并使表格更小. 子查询实现可能时使用内存中临时表,如果表变得太大,则返回到磁盘存储. 如果不使用物化策略,则优化器有时将非相关子查询重写为相关子查询.例如,以下IN子查

MySQL--5子查询与连接小结

子查询:出现在其他sql语句中的 SELECT,必须出现在小括号内,子查询外层可以是常见的SELECT语句,INSERT语句 UPDATE语句 DELETE语句,在子查询中可以包含多个关键字和条件 (如:ORDER BY ,LIMIT)以及相关的函数等. 引发子查询的情况3种:比较运算符 .IN 或 NOT IN .EXISTS 或 NOT EXISTS 连接:MySQL中的SELECT语句,多表更新,多表删除中都可以使用连接. 连接分为内连接INNER JOIN   外连接OUTER JOIN

测试那些事儿—SQL server exists子查询

exists子查询 --一次性购买“手机数码”产品的数量超过三个的消费金额打8折 --根据已知项查询未知项 --[1]根据类别名称查询类别编号 select sortid from commoditysort where sortname='手机数码‘ --[2]根据类别编号查询商品编号 select commodityid from commodityinfo where sortid= (select sortid from commoditysort where sortname='手机数

【MySQL】MySQL/MariaDB的优化器对in子查询的处理

参考:http://codingstandards.iteye.com/blog/1344833 上面参考文章中<高性能MySQL>第四章第四节在第三版中我对应章节是第六章第五节 最近分析生产环境慢查询,发现上线很久但是效率不高的查询 MySQL版本5.5.18 SELECT loc.cell_no AS m_cellNo ... FROM bs_loc loc LEFT JOIN st_stock_m m ON loc.cell_no = m.cell_no WHERE loc.zone_n

SQL 子查询,索引优化

场景 索引优化 单列索引 多列索引 索引覆盖 排序 场景 我用的数据库是mysql5.6,下面简单的介绍下场景 课程表 create table Course( c_id int PRIMARY KEY, name varchar(10) ) 数据100条 学生表: create table Student( id int PRIMARY KEY, name varchar(10) ) 数据70000条 学生成绩表SC CREATE table SC( sc_id int PRIMARY KEY

彻底搞懂oracle的标量子查询

oracle标量子查询和自定义函数有时用起来比较方便,而且开发人员也经常使用,数据量小还无所谓,数据量大,往往存在性能问题. 以下测试帮助大家彻底搞懂标量子查询. SQL> create table a (id int,name varchar2(10)); Table created. SQL> create table b (id int,name varchar2(10)); Table created. SQL> insert into a values (1,'a1'); 1

数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲> 数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例 实验所用数据表 子查询,解决一步不能求解 查询工资比scott高的员工信息: 子查询知识体系搭建: 解释3,查询部门是sales的员工信息: 方法1:子查询 [方法2]:多表: 优化考虑: 解释4[select],只能放单行子查询 解释4[from] 考题:显示员工姓名,薪水 解释