查询提示

  MySQL中可以给select语句各种提示,比如告诉它“查询的结果集特别大,请直接用磁盘临时表”,“请让这条select优先执行” ....

查询提示:与结果集相关

  与结果集相关的查询提示只有两个“distinct”,“all”

  1): distinct 表示去掉重复行

  2): all 表示不要去重(也就是说默认的就是all)

select all id,name from person ;
+----+------+
| id | name |
+----+------+
| | |
+----+------+
row in set (0.00 sec)

查询提示:操作相关提示

  这类提示有两个“high_priority”,“straight_join”;个人感觉这两个名字起的特别好,特别的见名知意。

  1): high_priority 让这条查询语句优先执行

  2): straight_join 以select中表出现的次序为join的次序,这种情况只应该出现在DBA确定优化器给出的执行计划有问题的情况下“钦定”用的

select high_priority * from person;
+----+------+
| id | name |
+----+------+
| | |
+----+------+
row in set (0.00 sec)

查询提示:sql_打头的提示

  1): sql_small_result 告诉MySQL当前select的语句返回的结果集比较小

  2): sql_big_result   告诉MySQL当前的select语句返回的结果集比较大

  这两个查询提示直接影响到了对“临时表”使用情况,sql_small_result MySQL使用内存临时表,sql_big_result 使用磁盘临时表。

select sql_big_result * from person;
+----+------+
| id | name |
+----+------+
| 1 | 123 |
+----+------+
1 row in set (0.00 sec)

  3): sql_buffer_reuslt 使用临时表保存结果集,这个提示的主要目的是尽可能早的释放锁

select sql_buffer_result * from person;
+----+------+
| id | name |
+----+------+
| 1 | 123 |
+----+------+
1 row in set (0.00 sec)

  4): sql_cache 、sql_no_cache 这两个是与查询缓存相关的提示在mysql-8.0.x版本中查询缓存这个功能已经被“砍掉”了。

学习交流

-----------------------------http://www.sqlpy.com-------------------------------------------------

-----------------------------http://www.sqlpy.com-------------------------------------------------

MySQL自成一派的查询提示的更多相关文章

  1. MySQL查询提示

    MySQL查询提示: 1.LOW_PROPRITY,HIGHT_PRIORITY 作用:指定sql语句的运行优先级,会将加了HIGHT_PROPRITY提示的sql调度到表访问队列的最前面 限制:仅对 ...

  2. MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询

    MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...

  3. MySQL基础架构之查询语句执行流程

    这篇笔记主要记录mysql的基础架构,一条查询语句是如何执行的. 比如,在我们从student表中查询一个id=2的信息 select * from student where id=2; 在解释这条 ...

  4. MySQL/MariaDB数据库的查询缓存优化

    MySQL/MariaDB数据库的查询缓存优化 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL架构 Connectors(MySQL对外提供的交互接口,API): ...

  5. day 38 MySQL之单表查询

    MySQL之单表查询   阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER ...

  6. 《MySQL数据操作与查询》- 综合项目 - 学生管理系统

    <MySQL数据操作与查询>综合项目需求 一.系统整体功能 维护学生信息.老师信息和成绩信息. 支持按多种条件组合查询学生信息和成绩信息. 二.系统的信息需求 一个班级有一个讲师一个班主任 ...

  7. Mysql多表表关联查询 inner Join left join right join

    Mysql多表表关联查询 inner Join left join right join

  8. mysql多表联合查询

    转自:http://www.cnblogs.com/Toolo/p/3634563.html 多表连接,小分三种(笛卡尔积.内连接.外连接),多分五种 (笛卡尔积.内连接.左连接.右连接.全连接(my ...

  9. mysql中的模糊查询

    转载自:http://www.letuknowit.com/archives/90/ MySQL中实现模糊查询有2种方式:一是用LIKE/NOT LIKE,二是用REGEXP/NOT REGEXP(或 ...

随机推荐

  1. Linux内核配置.config文件

    在命令行中,进入顶层内核目录,并输入命令make menuconfig,就可以启动一个基于菜单的内核配置编辑器.从这里开始,你可以访问每个可用的配置参数,并生成一个定制的内核配置. 当你退出配置编辑器 ...

  2. SpringMVC学习笔记六:使用Formatter解析或格式化数据

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6832903.html      Converter可以将一种类型转换成另一种类型,是任意Object之间的类型 ...

  3. Java多线程之线程的状态以及线程间协作通信导致的线程状态转换

      转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6561589.html  一:线程的状态以及变化图 Java中线程中状态可分为五种:New(新建状态),Ru ...

  4. vim note write

    Try: :vert sb N which will open a left vertical split (by default, unless you have modified some opt ...

  5. DataTables | Table plug-in for jQuery

    DataTables | Table plug-in for jQuery https://datatables.net/

  6. dubbo注册中心介绍

    作者:微子Lee链接:https://www.jianshu.com/p/2f4cfb6ed048 Dubbo的注册中心有好多种,包括Multicast.Zookeeper.Redis.Simple等 ...

  7. ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

    [root@ldaptest openldap]# ldapadd -x -D "cn=admin,dc=ultrapower,dc=com" -W -f /tmp/base.ld ...

  8. Ubuntu x86-64汇编(6)

    寻址方式 Addressing Modes 地址和值 Addresses vs Values 在64bit架构中, 地址是64bit. 访问内存内容的唯一方式就是通过方括号, 不加方括号读取的只是地址 ...

  9. 管理多tomcat实例的shell脚本

    为了简化tomcat的部署复杂度, 把以前单独配置的脚本提出来做了一个带参数的, 可以用于单机环境下的多tomcat实例管理. 其中deploy功能, 会将指定的模块war按日期时间更名备份后, 再部 ...

  10. python使用mysql数据库(转)

    参考地址 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外 ...