`

Mysql join语句的优化

 
阅读更多
Mysql4.1开始支持SQL的子查询。这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的SQL操作,同时也可以避免事务或者表锁死,并且写起来也很容易。但是,有些情况下,子查询可以被更有效率的连接JOIN替代。

假设我们要将所有没有订单记录的用户取出来,可以用下面这个查询完成:
    SELECT * FROM customerinfo WHERE CustomerID NOT in (SELECT CustomerID FROM salesinfo )

如果使用连接JOIN来完成这个查询工作,速度将会快很多。尤其是当salesinfo表中对CustomerID建有索引的话,性能将会更好,查询如下:
    SELECT * FROM customerinfo
    LEFT JOIN salesinfoON customerinfo.CustomerID=salesinfo.CustomerID
    WHERE salesinfo.CustomerID IS NULL

连接JOIN之所以更有效率一些,是因为 MySQL不需要在内存中创建临时表来完成这个逻辑上的需要两个步骤的查询工作。
分享到:
评论

相关推荐

    mysql Join使用以及优化

    此外,使用straight_join代替普通的JOIN语句可以强制MySQL使用指定的表作为驱动表进行查询,这样可以更明确地控制查询计划,有助于分析和优化Join操作。这种控制有时候能够帮助DBA找到更高效的查询路径。 在实际...

    Effective MySQL之SQL语句最优化.pdf

    10. SQL语句优化的技术手段:技术手段包括但不限于使用子查询优化、使用JOIN代替子查询、避免SELECT *、使用更有效的查询方法(如IN代替OR)、利用数据库提供的存储过程和函数减少网络往返次数等。 11. 经验与实践...

    MySQL语句优化的原则

    ### MySQL语句优化的核心原则与实践 #### 一、索引的重要性及合理设计 1. **索引的作用**:索引能够显著加快数据检索的速度,这是因为它们提供了快速访问数据库表行的方法,类似于书籍的目录。 2. **非群集索引与...

    Oracle Sql语句转换成Mysql Sql语句

    3. **连接查询**:Oracle的JOIN语法允许在ON条件中使用子查询,而在MySQL中,子查询通常需要移到FROM或WHERE子句中。 4. **游标**:Oracle SQL支持游标,MySQL则不直接支持,需要使用存储过程或临时表来实现类似...

    mysql优化sql语句的优化(索引,常用小技巧.)

    综上所述,MySQL数据库的优化涉及到多个方面,包括数据库设计、SQL语句优化、数据配置以及硬件与操作系统配置等。通过综合运用这些优化方法,可以有效提升数据库系统的性能和稳定性,为用户提供更好的服务体验。

    【36】最新精选蚂蚁-MySQL语句性能优化视频教程下载 .txt

    根据提供的文件信息,我们可以推断出本教程主要围绕MySQL语句性能优化展开,这是一项非常重要的数据库管理技能,尤其对于那些处理大量数据的应用程序来说至关重要。下面将详细阐述与MySQL语句性能优化相关的知识点。...

    【No206】最新精选蚂蚁-MySQL语句性能优化视频教程下载

    MySQL性能优化是一个涉及多个方面的综合过程,包括但不限于SQL语句优化、索引管理、存储引擎选择等。通过合理的设计和持续的监控调优,可以显著提升数据库的性能,从而提高整个应用系统的响应速度和用户体验。对于...

    《Effective MySQL之SQL语句最优化》手册

    《Effective MySQL之SQL语句最优化》是一本深入探讨如何提升数据库性能的专业手册,它针对SQL语句的优化提供了一系列实用且高效的策略。在数据库管理领域,SQL优化是提升系统性能的关键环节,尤其是在处理大数据量时...

    Effective MySQL之SQL语句最优化

    3. **查询语句优化**:理解SQL执行计划至关重要,书中可能会教你如何使用EXPLAIN分析查询执行过程。此外,避免在WHERE子句中使用函数,以及合理处理NULL值,也是优化查询的重要技巧。 4. **存储引擎的选择**:MySQL...

    《Effective MySQL之SQL语句最优化》数据库SQL

    本篇文章将依据书中的核心概念,结合实际应用,详细介绍SQL语句优化的关键知识点。 首先,理解索引及其作用是SQL优化的基础。索引是数据库管理系统用来加速数据检索的数据结构。合理创建和使用索引可以显著提高查询...

    MySQL中(JOIN/ORDER BY)语句的查询过程及优化方法

    在MySQL查询语句过程和EXPLAIN语句基本概念及其优化中介绍了EXPLAIN语句,并举了一个慢查询例子: 可以看到上述的查询需要检查1万多记录,并且使用了临时表和filesort排序,这样的查询在用户数快速增长后将成为噩梦...

    MySQL SQL语句练习题及答案

    在 MySQL 中,连接查询使用 JOIN 语句。例如,查询 JSJ 系的学生选修的课程号: ```sql SELECT cno FROM student JOIN sc ON student.sno = sc.sno JOIN course ON sc.cno = course.cno WHERE student.sdept = 'JSJ'...

    35.join语句怎么优化?1

    在MySQL数据库中,JOIN语句是用于合并两个或更多表中的数据的关键操作。优化JOIN语句对于提高查询性能至关重要,特别是在处理大数据量时。本文主要探讨了一种名为Multi-Range Read (MRR)的优化技术,它能有效地改善...

    SQL语句优化之JOIN和LEFT JOIN 和 RIGHT JOIN语句的优化

    SQL语句优化对于大型数据库系统至关重要,特别是在涉及多表查询时,JOIN、LEFT JOIN 和 RIGHT JOIN 的高效运用能显著提升查询速度。以下将详细探讨这些JOIN类型以及相关的优化策略。 JOIN原理: JOIN操作实际上是...

    MySQL语法语句大全[归类].pdf

    MySQL语法语句大全 MySQL语法语句大全是一份详细的MySQL语法手册,涵盖了创建表、创建索引、改变表结构、删除数据对象、执行查询等MySQL语法语句的大量知识点。本手册旨在帮助开发者快速掌握MySQL语法,提高开发...

    百度mysql性能优化ppt

    1. **SQL优化**:讲解如何编写高效的SQL语句,避免全表扫描,使用合适的JOIN操作,以及避免在WHERE子句中使用不推荐的操作符,如!=或NOT IN。 2. **索引优化**:介绍如何设计合理的索引策略,包括单列索引、组合...

    mysql 语句大全

    MySQL 语句大全 MySQL 语句大全是一个非常重要的数据库管理系统,它提供了许多基本语法和高级查询运算词,让开发者和数据库管理员可以更好地管理和维护数据库。在本篇文章中,我们将详细介绍 MySQL 语句大全的基本...

    MySQL语法语句大全MySQL语法语句大全

    以下是一份全面的MySQL语法语句概述: 一、数据定义(DDL - Data Definition Language) 1. 创建数据库:`CREATE DATABASE 数据库名;` 2. 删除数据库:`DROP DATABASE 数据库名;` 3. 创建表:`CREATE TABLE 表名 ...

    mysql性能优化.pptx

    MySQL性能优化是一个涵盖广泛的主题,涉及多个层面,包括SQL语句优化、索引优化、数据库表结构优化、系统级配置优化以及服务器硬件优化。以下是对这些方面进行详细说明: 1. **SQL语句优化** - **慢查询日志**:...

    mysql优化笔记+资料

    二、SQL语句优化 1. 使用JOIN操作时,确保ON条件是被索引的列,并且在可能的情况下,将JOIN顺序调整为小表先于大表。 2. 减少子查询,尽可能用JOIN替换,因为子查询通常效率较低。 3. 避免在SELECT语句中使用*,明确...

Global site tag (gtag.js) - Google Analytics