Mysql查询优化随笔记录

select SQL_CALC_FOUND_ROWS * from (select * from  oses_vehdata201606 union all  select * from  oses_vehdata201605)  t where 1=1 and t.Check_Time between ‘2016-06-23 00:00:00‘ and ‘2016-06-23 23:59:59‘  order by Check_Time desc

结果:45.66 s 、36.5s

select SQL_CALC_FOUND_ROWS * from (select * from  oses_vehdata201606)  t where 1=1 and t.Check_Time between ‘2016-06-23 00:00:00‘ and ‘2016-06-23 23:59:59‘  order by Check_Time desc

结果:8s、9s

select SQL_CALC_FOUND_ROWS * from (select * from  oses_vehdata201605)  t where 1=1 and t.Check_Time between ‘2016-06-23 00:00:00‘ and ‘2016-06-23 23:59:59‘  order by Check_Time desc

结果:7s

select SQL_CALC_FOUND_ROWS * from oses_vehdata201606  t where 1=1 and t.Check_Time between ‘2016-06-23 00:00:00‘ and ‘2016-06-23 23:59:59‘  order by Check_Time desc

结果:0.176s、0.052

数据库优化博客http://www.ihref.com/read-16422.html

MySQL索引和查询优化

时间: 2024-07-30 20:30:21

Mysql查询优化随笔记录的相关文章

MySQL简单操作随笔记录

create database golden; create table golden.users(usersId int unsigned not null auto_increment primary key,userName char(20) not null,passWord int unsigned not null); create table golden.u like golden.users ; -- 复制表结构insert into golden.u select * fro

Mysql查询优化器浅析

--Mysql查询优化器浅析 -----------------------------2014/06/11 1 定义 Mysql查询优化器的工作是为查询语句选择合适的执行路径.查询优化器的代码一般是经常变动的,这和存储引擎不太一样.因此,需要理解最新版本的查询优化器是如何组织的,请参考相应的源代码.整体而言,优化器有很多相同性,对mysql一个版本的优化器做到整体掌握,理解起mysql新版本以及其他数据库的优化器都是类似的. 优化器会对查询语句进行转化,转化等价的查询语句.举个例子,优化器会将

MySQL查询优化之explain的深入解析

MySQL查询优化之explain的深入解析 作者: 字体:[增加 减小] 类型:转载 时间:2013-06-13我要评论 本篇文章是对MySQL查询优化中的explain进行了详细的分析介绍,需要的朋友参考下 在分析查询性能时,考虑EXPLAIN关键字同样很管用.EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作.以及MySQL成功返回结果集需要执行的行数.explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查

Atitit Mysql查询优化器 存取类型 范围存取类型 索引存取类型 AND or的分析

    Atitit Mysql查询优化器 存取类型 范围存取类型 索引存取类型 AND or的分析1 存取类型1 5         范围存取类型2 6         索引存取类型2 7         转换3 AND3 9         OR3 10    UNION3 11    NOT,<>4 12    ORDER BY4 13    GROUP BY4 存取类型 当我们评估一个条件表达式,MySQL判断该表达式的存取类型.下面是一些存取类型,按照从最优到最差的顺序进行排列: s

Mysql查询优化器

本文的目的主要是通过告诉大家,查询优化器为我们做了那些工作,我们怎么做,才能使查询优化器对我们的sql进行优化,以及启示我们sql语句怎么写,才能更有效率.那么到底mysql到底能进行哪些优化那,下面通过以下几个方面来探讨一下: 1.常量转化 它能够对sql语句中的常量进行转化,比如下面的表达式: WHERE col1 = col2 AND col2 = 'x'; 依据传递性:如果A=B and B=C,那么就能得出A=C.所以上面的表达式mysql查询优化器能进行如下的优化:WHERE col

MySql查询优化方法总结

常用查询优化 1: max()优化: 在相应列上添加索引2: count()优化:count(*) 会算出包含null记录的数量, count(field_name)只包含不含 null的数量(这也是很多时候两种count方式结果不一致的原因), count()的时候尽量用后一种, count(null)返回0,即不会记录null记录数量3: 子查询优化=====>(改为)联接查询(如果1对多的关系,注意重复记录)4: group by优化 如果包含子查询,在子查询里面使用where条件和gro

mysql优化随笔

MySQL 配置: 清空查询缓存 reset querry cache: 当写入时,使用 innodb_flush_method=O_DIRECT 来避免双缓冲. 不要混用 innodb_thread_concurrency 和 thread_concurrency 参数– 这2个值是不兼容的. 保持 thread_cache 在一个相对较高的数字,大约 16 – 防止打开连接时缓慢. 使用skip-name-resolve参数 – 去掉 DNS 查找. 增大tmp_table_size值,以防

MySql查询优化limit 1避免全表扫描(转)

在某些情况下,如果明知道查询结果只有一个,SQL语句中使用LIMIT 1会提高查询效率. 例如下面的用户表(主键id,邮箱,密码): create table t_user(id int primary key auto_increment,email varchar(255),password varchar(255)); 每个用户的email是唯一的,如果用户使用email作为用户名登陆的话,就需要查询出email对应的一条记录. SELECT * FROM t_user WHERE ema

1025WHERE执行顺序以及MySQL查询优化器

转自http://blog.csdn.net/zhanyan_x/article/details/25294539 -- WHERE执行顺序-- 过滤比较多的放在前面,然后更加容易匹配,从左到右进行执行:一般都是优化器很智能的优化了,无需用户处理-- 如何查看优化后的语句EXPLAIN EXTENDEDSELECT SQL_NO_CACHE * FROM db.tableWHERE is_day=1 AND DATE(ex_date)='2015-07-01' ; SHOW WARNINGS;