*本文章使用数据均来自MySQL样本数据库Sakila,参考:https://blog.csdn.net/tanglei6636/article/details/93042010

max():

  • 通过一条含有max()的语句来了解一下通过索引来优化带有max()方法的SQL语句。
  • SELECT MAX(payment_date) FROM payment;

用explain关键字分析得出:这是一个简单的(SIMPLE)查询,type是最差的类型ALL全表扫描,虽然执行时间很短,但是还是有很大的提升空间。
优化方法:创建索引在相应的列上 CREATE INDEX idx_payment_date ON payment(payment_date);

会直接在Extra上显示“select tables optimized away(选择的表已被优化)”。


count():

用一条用于查询2006年以及2007年电影数量的SQL语句来了解一下有关count()的优化。

SELECT COUNT(release_year='2006' OR NULL) AS '2006',COUNT(release_year='2007' OR NULL) AS '2007' FROM film;

优化方法:count()与count(COL)的区别,count()在统计时会统计上空值(NULL),但是count(COL)则不会。所以要灵活运用count的这个特性,来实现相应的查询。
但是从性能上来说:count()是什么意思?事实上,它真正的含义是找一个占用空间最小的索引字段,然后对它进行记数,不要一看到就认为“大”,在count命令中,它指的是“任意一个“。

对于一个大表来说,如果你的字段有bit类型,如性别字段,表示真假关系的字段,我们需要为它加上索引,加上之后,我们的count速度就会快很多。

  • 任何情况下 SELECT COUNT(*) FROM tablename; 是最优选择;
  • 尽量减少SELECT COUNT(*) FROM tablename WHERE COL = value; 这种查询;
  • 杜绝SELECT COUNT(COL) FROM tablename 后面跟各种WHERE条件的出现。

【MySQL】基于MySQL的SQL优化(二)——对count()、max()的优化相关推荐

  1. MySQL性能管理及架构设计(二):数据库结构优化、高可用架构设计、数据库索引优化...

    一.数据库结构优化(非常重要) 1.1 数据库结构优化目的 1.减少数据冗余:(数据冗余是指在数据库中存在相同的数据,或者某些数据可以由其他数据计算得到),注意,尽量减少不代表完全避免数据冗余: 2. ...

  2. SQL学习(二)——SELECT COUNT GROUP BY HAVING

    原则 书写顺序 select->from->where->group by -> having ->order by 执行顺序 From->where->gr ...

  3. 【MySQL】MySQL开发注意事项与SQL性能优化步骤

    MySQL简介 地表最流行数据库 名副其实 什么是MySQL? 世界上应用最广泛且灵活的开源关系数据库 MySQL 是应用最广泛的开源关系数据库,是许多常见网站,应用程序和商业产品使用的主要关系数据存 ...

  4. 超详细图解!【MySQL进阶篇】SQL优化-索引-存储引擎

    1. Mysql的体系结构概览 整个MySQL Server由以下组成 Connection Pool : 连接池组件 Management Services & Utilities : 管理 ...

  5. Mysql面试题,sql优化,存储引擎,数据结构,基础知识等

    目录 一.相关知识 什么是MySQL?SQL是什么? SQL的生命周期? 什么是超键.候选键.主键.外键? 数据库有哪几个范式,谈谈理解? MySQL的binlog有有几种录入格式?分别有什么区别? ...

  6. linux mysql 邮件_linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件...

    linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件 使用虚拟用户收发邮件安装 九.安装Courier authentication lib ...

  7. linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件...

    linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件 使用虚拟用户收发邮件安装 九.安装Courier authentication lib ...

  8. mysql 执行计划extra_SQL优化 MySQL版 -分析explain SQL执行计划与Extra

    Extra 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 注:此文章必须有一定的Mysql基础,或观看执行计划入门篇传送门: https://www.cnblogs.com/Sta ...

  9. MySQL高级篇(SQL优化、索引优化、锁机制、主从复制)

    目录 0 存储引擎介绍 1 SQL性能分析 2 常见通用的JOIN查询 SQL执行加载顺序 七种JOIN写法 3 索引介绍 3.1 索引是什么 3.2 索引优劣势 3.3 索引分类和建索引命令语句 3 ...

最新文章

  1. 怎样训练YOLOv3
  2. 本机发邮件测试mail函数
  3. Elasticsearch2.x Cluster Health
  4. openCV4.2.0 error: (-5:Bad argument) CAP_IMAGES: can’t find starting number (in the name of file)
  5. php输出多维json,json多维数组怎么利用php进行构造
  6. 初学者的编程自学指南
  7. 现代制造工程课堂笔记07——应力应变分析(考点应力莫尔圆)
  8. Python3.6学习笔记(四)
  9. android p正式版,国内首家!一加正式推送Android P正式版
  10. c语言 指正判断字符串大小
  11. 这个 Python 代码自动补全神器搞得我卧槽卧槽的
  12. 【伙伴故事】一盏智能灯,点亮家庭和工业照明的新未来
  13. 万字图解Java多线程,不信你学不会!
  14. python文本分割_python实现大文本文件分割
  15. 安卓客户端使用矢量图
  16. STM32F103C8T6 红外测距模块测量距离(SHARP GP2Y0A21YK0F)使用CubeMx生成HAL库(ADC)
  17. python控制雷电模拟器
  18. 一些名人语录(不断添加中...)
  19. 首届中国餐饮行业资本品牌创新发展(盐城)论坛圆满举办成功
  20. flink 的用途 场景

热门文章

  1. 现场玩转儿IoT数据?百度云手把手“带你”!
  2. React 中hashhistory 与 browserhistory 的区别
  3. 按键精灵上传账号到服务器_【按键精灵】利用服务器远程代码实现图色信息热更新...
  4. 华为云用AI让“12345”热线更便民
  5. Zookeeper实现哨兵机制
  6. 字节跳动测试开发工程师-产品研发和工程架构部职位面试被虐
  7. 相机标定过程中的注意事项
  8. sql 连表修改数据
  9. 银行笔试之中国邮储(2020秋招)
  10. 就医160_关于我们