2019独角兽企业重金招聘Python工程师标准>>>

max()的优化

例如:explain select max(`payment_date`)  from payment; 可以查看到row的行数非常的多,也就是说扫描了整张表。

为payment_date加上一个索引。

create index idx_payment on payment (`payment_date`);

执行sql语句    explain select max(`payment_date`) from payment order by payment_date; 可以看到rows为null。

extra:    select tables optinized away;

并没有扫描整个表,只是通过索引拿出。

索引是通过顺序排列的,所以,通过索引的统计信息就非常清楚的知道,最后一个payment_date的数值是什么样子的。因此并不需要对表的操作,这样就大大的增加了这条sql的执行效率,同时尽可能大的减少了IO操作,这样的话,不管数据量有多大,执行效率基本上是恒定的。

思路:对于max()的查询,可以通过索引的方式来优化它。

count(*)和count(num)的区别

如果num某行为null,count(num)是不包含在内的。而count(*)则是会包含在内的。这就是为什么有时会出现差异的原因。

例如:

id            num

1                1

2                2

3                null

count(*)=3  但是 count(num)=2

子查询的优化

子查询用连接方式查询时要注意是否是1对多的关系,如果是,数据结果就会出现重复,需要用distinct去重。

limit()优化

优化步骤1:使用有索引的列或者主键的列进行order by操作。道理和max()一样。

优化步骤2:记录上次返回的主键,在下次查询时使用主键过滤。

例如:select file_id,description from file where file_id >55 and file_id <= 60 order by film_id limit 1,5;

这种做法的缺点是万一主键缺失的情况下,拿出来的就不一定是5条了。

d=====( ̄▽ ̄*)b 中心优化思想:避免数据量大时扫描过多的记录。

转载于:https://my.oschina.net/woshixiaomayi/blog/513066

小蚂蚁学习mysql性能优化(4)--SQL以及索引优化--具体一些优化方法相关推荐

  1. 小蚂蚁学习mysql性能优化(5)--SQL以及索引优化--需要添加索引的列

    2019独角兽企业重金招聘Python工程师标准>>> 在哪些列上添加索引? 1.    通常选择在where从句中,group by从句,order by从句,on从句中出现的列添 ...

  2. php连接数据库配置优化,小蚂蚁学习mysql性能优化(9)--操作系统配置优化--mysql配置文件优化...

    操作系统配置优化 数据库是基于操作系统的,目前大多数mysql都是安装在linux系统之上,所以对于操作系统的一些参数配置也会影响到mysql的性能 网络方面的配置修改    \etc\sysctal ...

  3. 小蚂蚁学习mysql性能优化(8)--数据库结构优化--范式化和反范式化,水平分表,垂直分表...

    2019独角兽企业重金招聘Python工程师标准>>> 范式化和反范式化 范式化是指数据库设计的规范,目前说到范式化一般是指第三设计范式,也就是要求数据表中不存在非关键字段对任意候选 ...

  4. db2分页查询sql语句_MySQL学习(八):SQL查询语句的用法和优化

    一.概述 MySQL的性能优化可以从机器硬件,如磁盘,内存等:MySQL服务器配置,如线程数,查询缓存等:MySQL的主从分离和分库分表等:SQL语句优化等.其中SQL语句优化是与日常开发密切相关的, ...

  5. 【MySQL之MySQL底层分析篇】系统学习MySQL,从应用SQL语法到底层知识讲解,这将是你见过最完成的知识体系

    文章目录 MySQL体系结构 MySQL存储结构(以InnoDB为例) MySQL执行流程(以InnoDB为例) 1. 数据写入原理 2. 数据查询原理 MySQL存储引擎 1. 为什么需要不同的存储 ...

  6. MySQL 优化之SQL和索引的优化

    文章目录 前言 一.索引的执行分析 二.索引失败 三.SQL和索引的优化 1) 慢查询日志(很重要) 2) 查看磁盘I/O读写的数据量 3) show status 四.优化总结 前言 "索 ...

  7. mysql 走索引 很慢_MySQL优化:为什么SQL走索引还那么慢?

    背景 2019-01-11 9:00-10:00 一个 MySQL 数据库把 CPU 打满了. 硬件配置:256G 内存,48 core 分析过程 接手这个问题时现场已经不在了,信息有限,所以我们先从 ...

  8. 小白学习MySQL - 一次慢SQL的定位

    同事提了个问题,某套测试环境MySQL执行语句出现hang. 作为小白,每次碰到问题,都是在积累经验.执行SQL出现hang,说明应该有会话处于等待状态,可以通过show processlist看下当 ...

  9. MySQL系列【一】:索引底层数据结构和优化

    索引的本质就是一种排好序的数据结构 文章目录 索引的本质就是一种`排好序的数据结构` 一.索引类型 1.`hash索引` 2.`B+树` 2.1.B+树存储 2.2.`聚簇索引和二级索引` 2.3.` ...

最新文章

  1. python数据分析神器_牛逼啊!一个随时随地写Python代码的神器
  2. 问题 F: 积木大赛(模拟)
  3. 字符串url获取参数_如何从URL查询字符串获取示例参数或将其附加到URL查询字符串(示例)?...
  4. TurboMail打造雀氏(中国)日用品邮件系统
  5. 算法题003 斐波那契(Fibonacci)数列
  6. 为什么设置二级路由器要断开WAN?
  7. linux 每日学一点《linux性能测试初步概况》
  8. 计算机基础知识及键盘熟悉实验报告,计算机基础实验报告实验一二.doc
  9. Excel表格将多个单元格内容合并到一个单元格中_工作中使用记录_2021-03-29
  10. 创蓝253云通讯平台---短信验证码接口说明
  11. 2022-05-02 Unity核心4——SpriteShape
  12. 金山云智能营销平台再升级,AI 投放助力游戏厂商精准到达;微医发布 AI 解决方案,提升县域医疗服务能力...
  13. 计算机教师个人总结及自评,教师个人总结及自评
  14. 微信社群怎么做?-螳螂SCRM系统社群营销轻松裂变
  15. KD树实现鸢尾花分类(Numpy实现)
  16. 等额本金、等额本息工具类(Java版)
  17. 地鼠宝宝的轶事奇闻之并发初探
  18. 迈向“超人认知”:脑机接口的未来
  19. 树莓派安装RTL-SDR驱动(编译安装)
  20. 【Appium踩坑】Cannot start the ‘com.xx.xx‘ application. Visit https://github.com/appium/appium/blob/mast

热门文章

  1. java 读取数据库结构_JAVA从SQLITE数据库中读取省份地市构造一棵树
  2. word分散对齐调整宽度_Word中文字很难对齐?有了这4个方法,2秒可对齐Word中所有文字...
  3. 查看正在执行的事务_看懂sql_trace--分析执行计划及CBO行为
  4. JavaScript 数据类型转换
  5. 自学笔记——Python内置的处理字符串的函数
  6. node.js 出现cannot find module ‘xxx‘ 解决办法
  7. 微信小程序实现滑动tab切换和点击tab切换并显示相应的数据(附源代码)
  8. 红芯丑闻揭秘者 Touko 专访 | 关于红芯丑闻的更多内幕……
  9. firewalled centos7
  10. 感知哈希算法——找出相似的图片