mysql 通过使用联全索引优化Group by查询
/*SELECT count(*) FROM (*/
EXPLAIN SELECT st.id,st.Stu_name,tmpgt.time,tmpgt.goutong FROM jingjie_students st RIGHT JOIN (
SELECT * FROM _goutong gttime,(
SELECT
name_id nameid,
max(time) time
FROM t_goutong
GROUP BY name_id) gt WHERE gttime.name_id=gt.nameid AND gttime.time=gt.time AND gttime.time>'2015-07-19 16:18:02') tmpgt ON st.id=tmpgt.name_id;
/*) student_latested;*/ //未使用联合索引时'GROUP BY name_id'查询使用的是全表扫描, //使用联合索引index name_id(name_id,time)后使用了索引:注意联合索引建立的先后顺序
熟悉Group by使用索引的情况:
一、GROUP BY 的索引应用
1、查询字段必须和后面GROUP BY 一致
select TeamID from competeinfo where TeamID >10 group by TeamID。
这里就是通过TeamID 来查找。完成group by 。
2、联合索引的应用,切记注意GROUP BY 顺序,Where 条件和GROUP BY 字段得是一个索引里面的
这个表CompeteID,TeamID建立联合索引
1)select TeamID from competeinfo where TeamID >10 and CompeteID > 100020 group by CompeteID
这个查询用到了CompeteID,TeamID联合索引
2)select TeamID from competeinfo where TeamID >10 and CompeteID > 100020 group by TeamID
这样的话查询group by中就没有用到索引了
二、下面是总结的是联合索引的使用
Index(Name,Age)表示在Name,Age两列上建立联合索引
如果where name='pp' 能使用索引
where age=25时不能使用索引
where name='pp' and age>25 能使用索引
where name ='pp' order by age 能使用索引
where name>'pp' order by age 不能使用索引
where name>'pp' order by name,age 能使用索引
order by name asc age desc 将不能使用索引!
mysql 通过使用联全索引优化Group by查询的更多相关文章
- 在MySQL中如何使用覆盖索引优化limit分页查询
背景 今年3月份时候,线上发生一次大事故.公司主要后端服务器发生宕机,所有接口超时.宕机半小时后,又自动恢复正常.但是过了2小时,又再次发生宕机. 通过接口日志,发现MySQL数据库无法响应服务器.在 ...
- mysql索引优化比普通查询速度快多少
mysql索引优化比普通查询速度快多少 一.总结 一句话总结:普通查询全表查询,速度较慢,索引优化的话拿空间换时间,一针见血,所以速度要快很多. 索引优化快很多 空间换时间 1.软件层面优化数据库查询 ...
- MySql数据表设计,索引优化,SQL优化,其他数据库
MySql数据表设计,索引优化,SQL优化,其他数据库 1.数据表设计 1.1数据类型 1.2避免空值 1.3text类型优化 2.索引优化 2.1索引分类 2.2索引优化 3.SQL优化 3.1分批 ...
- MySQL数据库高级二:索引优化
索引优化非常的重要 1.预热 java开发 DBA培训很少,需要经验磨练 索引优化的效果非常好 左外连接 MySQL没有全连接 7种join一定要会写 具体见武林的例子 union的字段顺序要相同 6 ...
- 【MySQL】MySQL的执行计划及索引优化
我们知道一般图书馆都会建书目索引,可以提高数据检索的效率,降低数据库的IO成本.MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的. ...
- Mysql性能优化二:索引优化
1 索引的类型 UNIQUE唯一索引 不可以出现相同的值,可以有NULL值. INDEX普通索引 允许出现相同的索引内容. PRIMARY KEY主键索引 不允许出现相同的值,且不能为NULL值,一个 ...
- MySQL笔记(4)-- 索引优化
索引失效情况: 最佳左前缀法则:如果索引了多列,要遵循最左前缀法则,指的是查询从索引的最左前列开始并且不跳过索引中的列:[覆盖索引有a,b,c,条件中使用了b或bc都导致该索引失效:如果条件使用了ac ...
- MYSQL通过索引优化数据库的查询
#转载请联系 索引是什么? 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的位置信息. 更通俗的说,数据库索引好比是一本书前面的目录,能加快数据 ...
- 索引优化、Sql查询语句优化
工作中我们经常会遇到系统查询慢的情况,一般我们会采取好多方法进行优化,如建立索引,优化查询Sql,分表,规范数据表结构设计,调整数据库参数(内存分配.缓存等),增加硬件配置,优化网络环境等.下面介绍两 ...
随机推荐
- shell value too great for base
今天同步文件的时候发现了这个问题: 原因是: tar_file_month=`date +%m` rsync -auzq --exclude=))"]" 当月是8月,tar_fil ...
- ldd 的一个安全问题
我们知道“ldd”这个命令主要是被程序员或是管理员用来查看可执行文件所依赖的动态链接库的.是的,这就是这个命令的用处.可是,这个命令比你想像的要危险得多,也许很多黑客通过ldd的安全问题来攻击你的服务 ...
- 第2章 Python基础-字符编码&数据类型 综合 练习题
1.转换 将字符串s = "alex"转换成列表 s = "alex" s_list = list(s) print(s_list) 将字符串s = " ...
- [转]@Transactional spring 配置事务 注意事项
@Transactional spring 配置事务 注意事项 [@more@] @Transactional spring 配置事务 注意事项 1. 在需要事务管理的地方加@Transactiona ...
- Python 爬虫 使用正则去掉不想要的网页元素
在做爬虫的时候,我们总是不想去看到网页的注释,或者是网页的一些其他元素,有没有好的办法去掉他们呢? 例如:下面的问题 第一种情况<ahref="http://artso.artron. ...
- Intel CPU命名规则
intel的几代CPU中,后缀字母主要有以下几种:M:笔记本专用CPU,一般为双核,M前面一位数字是0,意味着是标准电压处理器,如果是7,则是低电压处理器.U:笔记本专用低电压CPU,一般为双核,U前 ...
- unity, ios skin crash
https://issuetracker.unity3d.com/issues/ios-loading-models-with-tangents-set-to-calculate-legacy-fro ...
- InlineModelAdmin对象的学习
一.InlineModelAdmin的介绍 管理界面可以在与父模型相同的页面上编辑模型.这些被称为内联. Django提供了两个子类,InlineModelAdmin它们是: TabularInlin ...
- Atitit nodejs5 nodejs6 nodejs 7.2.1 新特性attialx总结
Atitit nodejs5 nodejs6 nodejs 7.2.1 新特性attialx总结 1.1. Node.js 4.0.0 已经发布了 .这是和 io.js 合并之后的首个稳定版本,它 ...
- 转:Math: Math.atan() 与 Math.atan2() 计算两点间连线的夹角
我们可以使用正切操作将角度转变为斜率,那么怎样利用斜率来转换为角度呢?可以利用斜率的反正切函数将他转换为相应的角度.as中有两个函数可以计算反正切,我们来看一下. 1.Math.atan() Math ...