mysql查询提示_MySQL自成一派的查询提示

【查询提示】

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

【查询提示:与结果集相关】

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

1): distinct 表示去掉重复行

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

select all id,name from person ;+----+------+

| id | name |

+----+------+

| 1 | 123 |

+----+------+

1 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 |

+----+------+

| 1 | 123 |

+----+------+

1 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 * fromperson;+----+------+

| id | name |

+----+------+

| 1 | 123 |

+----+------+

1 row in set (0.00 sec)

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

select sql_buffer_result * fromperson;+----+------+

| 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-------------------------------------------------

f84de00e7734eedd9aab4a4907ddbf0c.png

4c71c4118b262b56a865e1c95c8b638d.png

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值