转:mysql常用的hint

http://hi.baidu.com/life_to_you/item/516be512f273da0db98a1a98

 

对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。


强制索引 FORCE INDEX      
SELECT * FROM TABLE1 FORCE INDEX (FIELD1) …    
以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。


忽略索引 IGNORE INDEX      
SELECT * FROM TABLE1 IGNORE INDEX (FIELD1, FIELD2) …    
在上面的SQL语句中,TABLE1表中FIELD1和FIELD2上的索引不被使用。     

关闭查询缓冲 SQL_NO_CACHE      
SELECT SQL_NO_CACHE field1, field2 FROM TABLE1;    
有一些SQL语句需要实时地查询数据,或者并不经常使用(可能一天就执行一两次),这样就需要把缓冲关了,不管这条SQL语句是否被执行过,服务器都不会在缓冲区中查找,每次都会执行它。


强制查询缓冲 SQL_CACHE     
SELECT SQL_CALHE * FROM TABLE1;    
如果在my.ini中的query_cache_type设成2,这样只有在使用了SQL_CACHE后,才使用查询缓冲。 

 

优先操作 HIGH_PRIORITY     
HIGH_PRIORITY可以使用在select和insert操作中,让MYSQL知道,这个操作优先进行。    
SELECT HIGH_PRIORITY * FROM TABLE1;


滞后操作 LOW_PRIORITY
LOW_PRIORITY可以使用在insert和update操作中,让mysql知道,这个操作滞后。    
update LOW_PRIORITY table1 set field1= where field1= …


延时插入 INSERT DELAYED     
INSERT DELAYED INTO table1 set field1= …    
INSERT DELAYED INTO,是客户端提交数据给MySQL,MySQL返回OK状态给客户端。而这是并不是已经将数据插入表,而是存储在内存里面等待排队。当mysql有空余时,再插入。另一个重要的好处是,来自许多客户端的插入被集中在一起,并被编写入一个块。这比执行许多独立的插入要快很多。坏处是,不能返回自动递增的ID,以及系统崩溃时,MySQL还没有来得及插入数据的话,这些数据将会丢失。 

 

强制连接顺序 STRAIGHT_JOIN
SELECT TABLE1.FIELD1, TABLE2.FIELD2 FROM TABLE1 STRAIGHT_JOIN TABLE2 WHERE …    
由上面的SQL语句可知,通过STRAIGHT_JOIN强迫MySQL按TABLE1、TABLE2的顺序连接表。如果你认为按自己的顺序比MySQL推荐的顺序进行连接的效率高的话,就可以通过STRAIGHT_JOIN来确定连接顺序。


强制使用临时表 SQL_BUFFER_RESULT
SELECT SQL_BUFFER_RESULT * FROM TABLE1 WHERE …     
当我们查询的结果集中的数据比较多时,可以通过SQL_BUFFER_RESULT.选项强制将结果集放到临时表中,这样就可以很快地释放MySQL的表锁(这样其它的SQL语句就可以对这些记录进行查询了),并且可以长时间地为客户端提供大记录集。


分组使用临时表 SQL_BIG_RESULT和SQL_SMALL_RESULT     
SELECT SQL_BUFFER_RESULT FIELD1, COUNT(*) FROM TABLE1 GROUP BY FIELD1;    
一般用于分组或DISTINCT关键字,这个选项通知MySQL,如果有必要,就将查询结果放到临时表中,甚至在临时表中进行排序。SQL_SMALL_RESULT比起SQL_BIG_RESULT差不多,很少使用。

【自记】SQL 中 SQL Hint 详细介绍与使用指南 SQL Hint(SQL 提示)是一种特殊的注释语法,用于向数据库查询优化器提供执行计划的建议或指令。它允许开发者在特定情况下干预查询优化器的决策,强制使用特定的执行策略来提升查询性能。提供精确的执行计划控制在特定场景下显著提升性能解决查询优化器的局限性不是万能解决方案需要深入理解数据特征定期评估和调整充分的性能测试优先优化 SQL 语句结构和索引设计在关键性能瓶颈处使用 Hint建立性能监控和评估机制保持对新版本数据库优化器改进的关注。 阅读详情

相关推荐

UDS 诊断 - CommunicationControl(通信控制)(0x28)服务 诊断

字节参数名称字节值#1CommunicationControl(通信控制)请求SID0x28#2#3communicationType(通信类型)#4nodeIdentificationNumer(节点标识符)(高位字节)controlType 为 0x04 或 0x05 时,使用该参数#5nodeIdentificationNumer(节点标识符)(低位字节)controlType 为 0x04 或 0x05 时,使用该参数。

耳朵东金子千的博客 1820

ChatGPT润色进阶指南:从Prompt设计到分阶段实战

在自然语言处理领域,Prompt工程是实现与大型语言模型精准交互的核心技术。其原理在于通过结构化指令引导模型生成符合预期的文本,本质上是将人类意图编码为机器可理解的上下文。这项技术的价值在于极大提升了AI辅助写作的可控性与输出质量,使内容生成从随机创作变为定向优化。在实际应用场景中,尤其在文本润色、风格迁移、长文档处理等任务上,精心设计的Prompt能显著改善输出结果的相关性和一致性。本文聚焦于ChatGPT文本润色场景,深入剖析了如何通过角色设定、指令拆解与格式控制等Prompt设计方法,系统解决润色效果

weixin_34082695的博客 573

算力网:正在编织的“第二电网“

中国算力网:编织智能时代的"第二电网" 中国正在构建全国一体化算力网,目标让算力资源像水电一样即取即用。这一国家战略通过"东数西算"布局,将东部算力需求与西部清洁能源优势结合,形成三级时延圈(1ms城市级、5ms区域级、20ms国家级)。算力网采用三层架构:基础设施层的八大枢纽节点作为"发电厂",编排管理层的智能调度系统作为"调度中心",运营服务层提供标准化算力服务。关键技术包括算力路由、异构算力统一度量、无损网络和液冷技术等。

这只是一个博客 667

mysql force index() 强制索引的使用

前跑了一个SQL,由于其中一个表的数据量比较大,而在条件中有破坏索引或使用了很多其他索引,就会使得sql跑的非常慢。。。(尤其是使用联合索引的时候) 那我们怎么解决呢? 这时候我么可以使用mysql force index() 强制索引来优化查询语句; 使用MySQL force index 强制索引的目的是对目标表添加最关键的索引,使其优先使用该索引筛选数据; select * from ws_shop a where date(create_time-interval 6 hour) &g.

gw的博客 1万+

电池建模 004- Battery (Table-Based)表格化电池模型入门学习

对于 Battery (Table-Based) 模块,提供了多种内置参数。该预参数化数据允许您将模块设置为代表特定供应商的组件。这些电池的参数化可以与制造数据表中的放电曲线相匹配。要加载预定义的参数化,双击 Battery (Table-Based) 模块,点击 Selected part 参数中的 超链接,然后在块参数化管理器窗口中,从可用组件列表中选择所需部件。 (默认)选项用于参数化模块,以代表特定供应商的组件。

qq_63860930的博客 2734

从零搭建UVM验证环境:新手入门实践指南

在数字芯片验证领域,SystemVerilog和UVM(Universal Verification Methodology)是构建高效验证环境的核心技术。其原理基于面向对象编程和事务级建模,通过组件化架构实现验证的复用性和自动化。这一方法学的技术价值在于显著提升验证效率与质量,广泛应用于处理器、通信芯片等复杂设计的验证场景。本文聚焦于UVM验证环境的搭建实践,通过一个加法器实例,详细解析了uvm_driver、uvm_monitor、uvm_sequence等关键组件的协同工作机制,并提供了基于Quest

weixin_30015371的博客 445

mysql常用的hint[转]

对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。 强制索引 FORCE INDEX SELECT * FROM TABLE1 FORCE INDEX (FIELD1) … 以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。...

weixin_33961829的博客 1066

【超详细】C#的单例模式

本文详细介绍了C#中的单例设计模式,包括两种实现方式:普通类泛型单例(Singleton<T>)和基于MonoBehaviour的组件单例(MonoSingleton<T>)。单例模式通过私有构造、静态私有实例和公共访问入口确保全局唯一实例,具有节省资源、保证数据一致性等优势。文章分别阐述了两者的核心原理、代码实现、使用场景及注意事项,并提供了日志管理器和音效管理器的具体应用示例。特别强调了多线程安全、初始化时机和避免过度使用等重要原则,为Unity开发中合理运用单例模式提供了全面指导。

grapefruit_lyy的博客 1533

mysql的hint_MySQL常用HINT分享

本节内容:MySQL常用HINT1,强制索引 FORCE INDEX复制代码 代码示例:SELECT * FROM TABLE1 FORCE INDEX (FIELD1) …只使用建立在FIELD1上的索引,而不使用其它字段上的索引。2,忽略索引 IGNORE INDEX复制代码 代码示例:SELECT * FROM TABLE1 IGNORE INDEX (FIELD1, FIELD2) …TA...

weixin_35411487的博客 791

RK3588 MPP,RGA,DRM,QT之RGA

RK3588多路视频采用RGA来进行混合成一帧

dreamliweiming的博客 4265

Windows11安装配置openclaw+deepseek(大龙虾)

密码可以随便设置(注意wsl系统本质上是linux系统,设置密码系统是不会像windows一样显示*点位符的),输入密码后敲回车再次输入密码,输入后敲回车。如果不小心关闭这个界面,可以再次进入powershell,输入wsl进行系统。在powershell中输入:curl -fssL https://openclaw.ai/install.sh | bash。下面是否通过第3方平台和openclaw交互,我选择j最后一项:skip for now。到下面这一步,可以通过键盘的左箭头选择Yes.

mahailiang的专栏 343

mysql 常用hint

<br />mysql常用的hint<br />对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。<br />强制索引 FORCE INDEX<br />SELECT * FROM TABLE1 FORCE INDEX (FIELD1) …<br />以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。<br />忽略索引 IGNORE INDEX<br />

回南山种豆的专栏 1128

高通开发系列 - Camera之摄像头调试记录

记录一些调试内容

fulinux的博客 1216

hint mysql_MySQL常用HINT分享

本节内容:MySQL常用HINT1,强制索引 FORCE INDEX复制代码 代码示例:SELECT * FROM TABLE1 FORCE INDEX (FIELD1) …只使用建立在FIELD1上的索引,而不使用其它字段上的索引。2,忽略索引 IGNORE INDEX复制代码 代码示例:SELECT * FROM TABLE1 IGNORE INDEX (FIELD1, FIELD2) …TA...

weixin_34617955的博客 979

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

mysql的自定义HINT语法-实战

MySQL 的 HINT(优化器提示)是开发者 / DBAs 向 MySQL 优化器传递的 “优先级高于默认决策” 的执行指令,本质是 “微调优化器行为的开关”—— 优化器会优先遵循 HINT 规则(若合法),仅当 HINT 无效时才使用默认决策。/*+ ... */格式的优化器指令,仅对当前 SQL 生效;规范:严格遵循/*+开头、空格分隔、参数匹配的要求,避免语法错误;官方清单:按 “索引选择→连接优化→排序分组→执行策略→InnoDB 专属” 分类记忆,重点掌握高频 HINT;

weixin_46136610的博客 1174

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

mysql常用的hint

对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。 强制索引 FORCE INDEX  SELECT * FROM TABLE1 FORCE INDEX (FIELD1) … 以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。

木生的博客 1448

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

mysql index hint_mysql常用的hint

对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。强制索引 FORCE INDEXSELECT * FROM TABLE1 FORCE INDEX (FIELD1) … 以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。忽略索引 IGNORE IN...

weixin_31545685的博客 475

hint用法mysql_mysql常用的hint

--mysql常用的hint-------------------2014/06/26对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。强制索引FORCEINDEXSELECT*FROMTABLE1FORCEINDEX(FIELD1)…以上的SQL语句只使...

weixin_39855869的博客 171

MySQL Hint

MySQL Hint是一种能优化MySQL数据库查询性能的提示指令,也称为SQL注释或SQL提示。通过在SQL查询语句中添加hint,用户可以指导MySQL数据库选择最合适的查询执行路径。这种提示通常是以注释的形式添加到SQL查询语句中,以便优化MySQL的执行计划。当MySQL数据库优化器进行查询优化时,会考虑hint提供的信息,以生成更有效的查询执行计划。

Eucalyptus's blog 4205

mysql hint 驱动_【转】mysql常用的hint

对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。强制索引 FORCE INDEXSELECT * FROM TABLE1 FORCE INDEX (FIELD1) …以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。忽略索引 IGNORE IND...

weixin_39540178的博客 88

mysql hint是什么_mysql hint是什么意思

A:select * from t1 where f1 = 20;B:select * from t1 where f1 = 30;如果f1的值刚好频繁更新的值为30,并且没有达到MySQL自动更新cardinality值的临界值或者说用户设置了手动更新又或者用户减少了sample page等等,那么对这两条语句来说,可能不准确的就是B了。这里顺带说下,MySQL提供了自动更新和手动更新表card...

weixin_29735807的博客 1226

MySQL的HINT功能

比如:表t1经过大量的频繁更新操作,(UPDATE,DELETE,INSERT),cardinality已经很不准确了,这时候刚好执行了一条SQL,那么有可能这条SQL的执行计划就不是最优的。如果f1的值刚好频繁更新的值为30,并且没有达到MySQL自动更新cardinality值的临界值或者说用户设置了手动更新又或者用户减少了sample page等等,那么对这两条语句来说,可能不准确的就是B了。那看到这里我们就明白了,为什么要在基数高的字段上建立索引,而基数低的的字段建立索引反而没有全表扫描来的快。

bisal的专栏 471

MySql中常用的hint

对于经常使用Oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在MySQL里,也有类似的hint功能。下面介绍一些常用的。 强制索引 FORCE INDEX  SELECT * FROM TABLE1 FORCE INDEX (FIELD1) … 以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。 忽略索引 I

csdn265的博客 532

mysql常用hint分享_mysql常见的hint

mysql常用的hint对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。强制索引 FORCE INDEXSELECT * FROM TABLE1 FORCE INDEX (FIELD1) …以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。忽...

weixin_31109487的博客 179

如何通过 MySQL Hint 功能优化查询性能

对于长期使用 Oracle 的朋友来说,Oracle 的 Hint 功能 是优化 SQL 语句时常用的工具。通过指定不同的 Hint,开发者可以精确控制查询的执行计划,以提高查询效率。同样,在 MySQL 中,也有类似的功能,允许用户对 SQL 查询的执行方式进行优化。通过使用 MySQL 的 Hint 功能,开发者可以影响查询的执行计划,从而提升性能,尤其是在大数据量或复杂查询的场景中。

weixin_42329915的博客 1064

mysql常用hint分享_Oracle优化常用hint语句

在SQL语句优化过程中,我们经常会用到hint。现总结一下在SQL优化过程中常见Oracle HINT的用法:在SQL语句优化过程中,,我们经常会用到hint。现总结一下在SQL优化过程中常见Oracle HINT的用法:1. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.例如:SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_N...

weixin_36071392的博客 377
上一篇: 转: sql解析顺序及注意问题
下一篇: 转:MySQL 负载过高解决一例
Brage_Lin
博客等级 码龄20年 5粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值