美文网首页
Mysql SQL优化

Mysql SQL优化

作者: 我是一名搬运工 | 来源:发表于2019-06-25 13:20 被阅读0次

1) In和Exists选择

        In原理:先执行In里面的子查询,然后拿结果去匹配外面的主查询。

        Exists原理:先执行主查询,然后拿结果去匹配Exists里面的子查询。

        这就相当于两个for循环,肯定是外面那个循环小的情况查询效率高。

        所以,如果子查询结果集更小,那么用In效率高;

        如果主查询结果集更小,那么用exists效率高。

2)Not in和Not Exists选择

        Not in:子查询和主查询都执行全表扫描

        Not Exists:主查询全表扫描,子查询还可以用索引

        所以not exists效率比not in 高。

3)In\or\union选择

        对于索引列,使用union好,因为in\or会进行全表扫描,而union可以用索引;

        对于非索引列,使用In\or好,因为非索引列都是全表扫描,union的全表扫描效率极低。

        而in的效率比or要高,in的时间复杂度是O(logN),or的时间复杂度是O(N)。

4)用不用Join

        首先,用不用join的问题,如果关联查询能够使用到被Join表的索引的话,也就是说被join表不是全表扫描的话,就可以用join;如果不能用到join表的索引,那最好不要用join,效率极低;

        其次,用join哪个放前哪个放后的问题,我们一般把小表放在前面作为驱动表,大表放后面作为被驱动表,这样效率高。

5)其它优化

        ● 不用select *

        ● 非空的列尽量定义为not null

        ● 可为空的列尽量在空的时候,设置为空字符串或者0

        ● 一个表的索引数最好不要超过6个

        ● 索引列不能有大量数据重复

        ● 如果经常用到某列的函数,那么可以把列的函数作为一个索引

        ● 能用数值类型,就不要用varchar

        ● 少用left join和right join,多用inner join

        ● Inner join由于左右表的执行顺序不对导致查询速度慢时,改用straight_join

        ● 大的事务操作最好拆开来,拆开来可以并发执行,效率高

相关文章

  • 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/qvcccctx.html