美文网首页
mysql sql优化

mysql sql优化

作者: ZMRWEGo | 来源:发表于2019-06-24 11:16 被阅读0次

1. 针对where,group by,order by子句优化

  • 优化group by语句
    默认情况下,MySQL对所有GROUP BY col1,col2...的字段进行排序。这与在查询中指定ORDER BY col1,col2...类似。因此,如果显式包括一个包含相同的列的ORDER BY子句,则对MySQL的实际执行性能没有什么影响。 如果查询包括GROUP BY 但用户想要避免排序结果的消耗,则可以指定ORDER By NULL禁止排序,例如:
explain select id, sum(moneys) from sales2 group by id \G     
explain select id, sum(moneys) from sales2 group by id order by null \G   

可以看到,第二个执行计划中,并没有using filesort,而恰恰filesort是最耗时的

2. 优化order by语句

在某些情况下,mysql可以使用一个索引来满足order by子句,因为我们的索引是用B Tree建立的,所以建立的过程已经对该列进行了排序。但在具体编写sql语句的时候,我们还要注意编写的sql是否能准确利用索引

  • 案例
explain select * from employees order by birth_date;
explain select emp_no,birth_date order by birth_date;

第一条sql语句没有用到索引,而是用了全文检索filesorting,分析原因:因为birth_date是辅助索引,只能通过birth_date查询到主键即emp_no。而我们的select *则需要所有列的信息,这时候就需要回表,即再次到主索引树搜索一次,这是查询优化器会自动使用filesorting进行文件排序而不使用birth_date的索引,但如果我们把select *改为select emp_no,birth_date则会使用birth_date索引

相关文章

  • 11-mysqlSQL分析

    六星教育 - java-mysql优化1909 SQL优化 所谓SQL优化:基于MySQL的优化器查询规则来优化S...

  • mysql数据库优化

    1. Mysql优化介绍 1.1 sql优化 a. sql优化分析b. 索引优化c. 常用sql优化d. 常用优化...

  • MySQL数据库与SQL优化

    一、MySQL数据库 - SQL优化 MySQL DBMS - MySQL Database Management...

  • 详解MySQL之SQL优化(1)

    MySQL学习笔记(6) SQL优化(1) 优化SQL的一般步骤 本文所涉及案例表来自MySQL的案例库sakil...

  • SQL审核优化建议

    SQL审核优化建议 数据库类型 MySQL:RDS MySQL、PolarDB MySQL、MariaDB、Pol...

  • 1 mysql的架构介绍

    1.1 Mysql简介 1.1.1 概述 1.1.2 高级MySQL mysql内核 sql优化工程师 mysql...

  • 2018-07-01

    SQL优化改写之美--MySQL虚拟列、伪列实现对SQL的优化 慢SQL文本如下: SQL执行时长达38S,获取3...

  • 千万级MySQL数据库建立索引,提高性能的秘诀

    实践中如何优化MySQL 实践中,MySQL的优化主要涉及SQL语句及索引的优化、数据表结构的优化、系统配置的优化...

  • 17.MySQL优化

    《高性能MySQL》——这本书都有的 “字段”优化总结 “索引”优化总结 索引的优化 “查询SQL”优化总结 “引...

  • MYSQL优化 Analyze Table

    Analyze Table(分析表) MySQL 的Optimizer(优化元件)在优化SQL语句时,首先需要收集...

网友评论

      本文标题:mysql sql优化

      本文链接:https://www.haomeiwen.com/subject/zvayqctx.html