MySQL如何优化WHERE子句

技术MySQL如何优化WHERE子句这篇文章主要为大家展示了“MySQL如何优化WHERE子句”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL如何优化WHERE子句”

本文主要展示“MySQL如何优化WHERE子句”,简单易懂,条理清晰,希望能帮你解决疑惑。让边肖带领大家学习《MySQL如何优化WHERE子句》一文。

MySQL如何优化WHERE子句[@more@]where优化主要用在SELECT中,因为它们主要用在那里,但是同样的优化也可以用在DELETE和UPDATE语句中。

但是,请注意以下优化并不完整。MYSQL实现了很多优化,但是我没有时间全部测试。

MySQL的一些优化如下:

去掉不必要的括号:

((a和b)和c或((a和b)和(c和d)))

- (a和b和c)或(a和b和c和d)

持续呼叫:

(a)

- b5 AND b=c AND a=5

删除恒定条件:

(B=5和B=5)或(B=6和5=5)或(B=7和5=6)

- B=5或B=6

索引使用的常量表达式只计算一次。

单个表中没有WHERE COUNT(*)可以直接从表中检索信息。当只使用一个表时,对任何非空表达式执行同样的操作。

无效表达式的早期检测。MySQL不可能快速检测到一些SELECT语句,并且不返回行。

如果不使用GROUP BY或GROUP函数(COUNT()、min () …),HAVING和WHERE将被合并。

对于每个子连接,构造一个更简单的WHERE来获得更快的WHERE计算,并尽快跳过记录。

所有常量表都在查询中的任何其他表之前被读出。

常数表是:

空表或有一行的表。

与主键的唯一索引或WHERE子句一起使用的表,其中所有索引部分都使用常量表达式,索引部分被定义为非空。

以下所有表格都用作常数表格:

mysql SELECT * FROM t WHERE主键=1;

mysql SELECT * FROM t1,T2 WHERE t1 . primary _ key=1 AND T2 . primary _ key=t1 . id;

联接表的最佳组合是找到:(通过尝试所有可能性。如果“排序依据”和“分组依据”中的所有列都来自同一个表,则在连接时会首先选择该表。

如果使用SQL_SMALL_RESULT,MySQL将在内存中使用一个表。

如果有ORDER BY子句和不同的GROUP BY子句,或者ORDER BY或GROUP BY包含来自其他表的列,而这些列不在联接队列的第一个表中,则创建临时表。

因为DISTINCT在所有列上都转换为GROUP BY,所以DISTINCT和ORDER BY的组合在许多情况下还需要一个临时表。

查询每个表的索引,并使用小于30%的行的索引。如果找不到这样的索引,将使用快速表扫描。

在某些情况下,MySQL甚至不用查询数据文件就可以从索引中读取行。如果索引中使用的所有列都是数字,则仅使用索引树来解决查询。

在输出每条记录之前,将跳过与HAVING子句不匹配的行。

以下是一些快速查询示例:

MySQL SELECT COUNT(*)FROM TBL _ name;

mysql SELECT MIN(key_part1),MAX(key _ part 1)FROM TBL _ name;

MySQL SELECT MAX(key _ part 2)FROM TBL _ name

其中key _ part _ 1=常量;

mysql SELECT.自tbl_name

按键排序_第1部分,键_第2部分,LIMIT 10

mysql SELECT.自tbl_name

按键排序_第1部分DESC,第2部分DESC,LIMIT 10

仅使用索引树就可以解决以下查询(假设索引列是数字的):

mysql SELECT key_part1,key _ part 2 FROM TBL _ name WHERE key _ part 1=val;

MySQL SELECT COUNT(*)FROM TBL _ name

其中键_部分1=val1,键_部分=val2

MySQL SELECT key _ part 2 FROM TBL _ name GROUP BY key _ part 1;

使用索引按排序顺序检索以下查询,每次不进行其他排序:

mysql SELECT.FROM tbl_name ORDER BY key_part1,key_part2,

mysql SELECT.从tbl_name按键排序_第1部分DESC,第2部分DESC,

以上就是《MySQL如何优化WHERE子句》一文的全部内容,感谢阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/62655.html

(0)

相关推荐

  • 豌豆角怎么做好吃,请问,豌豆尖怎么做好吃

    技术豌豆角怎么做好吃,请问,豌豆尖怎么做好吃烫火锅豌豆角怎么做好吃,炝炒豌豆角炒肉丝的做法是怎么做的?
    材料:豌豆角300克,红甜椒小半个,瘦肉100克,姜片少许做法:1、先将瘦肉切片;2、把切好的瘦肉片中加入酱油,糖和

    生活 2021年10月25日
  • MySQL有什么用

    技术MySQL有什么用小编给大家分享一下MySQL有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL简介MySQL是一款流行的开

    攻略 2021年11月18日
  • web前端与后端分离的架构实例分析

    技术web前端与后端分离的架构实例分析本篇内容主要讲解“web前端与后端分离的架构实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web前端与后端分离的架构实例分析”吧

    攻略 2021年11月17日
  • 免费抖音自助下单平台,免费自助下单平台介绍!

    技术免费抖音自助下单平台,免费自助下单平台介绍!现在玩抖音的小伙伴们越来越多了,不过自己的发布的作品没有点赞和评论确实挺遗憾的,所以很多朋友想到了,给自己的抖音账号加粉,和作品点赞评论自助下单,这样的话可以带动抖音账号的

    测评 2021年10月21日
  • 有哪些Java GC的相关问题

    技术有哪些Java GC的相关问题这篇文章主要介绍“有哪些Java GC的相关问题”,在日常操作中,相信很多人在有哪些Java GC的相关问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年11月2日
  • 四氯化碳的密度,甲苯与四氯化碳的密度关系

    技术四氯化碳的密度,甲苯与四氯化碳的密度关系Br溶于水呈橙黄色四氯化碳的密度,溶于四氯化碳呈橙红色, 由于水的密度比四氯化碳的要小,所以四氯化碳在下面, 渐渐水中的BR就溶到四氯化碳了,
    所以上层无色,下层橙色。

    生活 2021年10月23日