mysql中的强制索引_MYSQL中常用的强制性操作(例如强制索引)

mysql常用的hint

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

强制索引 FORCE INDEX

复制代码代码如下:

SELECT * FROM TABLE1FORCE INDEX (FIELD1) …

以上的SQL语句只使用建立在FIELD1上的索引,而不使用其它字段上的索引。

select * from table force index(PRI) limit 2;(强制使用主键)

select * from table force index(ziduan1_index) limit 2;(强制使用索引"ziduan1_index")

select * from table force index(PRI,ziduan1_index) limit 2;(强制使用索引"PRI和ziduan1_index")

忽略索引 IGNORE INDEX

复制代码代码如下:

SELECT * FROM TABLE1IGNORE INDEX (FIELD1, FIELD2) …

在上面的SQL语句中,TABLE1表中FIELD1和FIELD2上的索引不被使用。

select * from table ignore index(PRI) limit 2;(禁止使用主键)

select * from table ignore index(ziduan1_index) limit 2;(禁止使用索引"ziduan1_index")

select * from table ignore index(PRI,ziduan1_index) limit 2;(禁止使用索引"PRI,ziduan1_index")

关闭查询缓冲 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_PRIORITYHIGH_PRIORITY可以使用在select和insert操作中,让MYSQL知道,这个操作优先进行。

复制代码代码如下:

SELECT HIGH_PRIORITY* FROM TABLE1;

滞后操作 LOW_PRIORITYLOW_PRIORITY可以使用在insert和update操作中,让mysql知道,这个操作滞后。

复制代码代码如下:

update LOW_PRIORITYtable1 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_JOINTABLE2 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_RESULTFIELD1, COUNT(*) FROM TABLE1 GROUP BY FIELD1;

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为王成录:把安卓最核心部分换得差不多了 手机升级鸿蒙OS 2.0水到渠成

内容来自网易新闻9月10日下午,华为在东莞松山湖举办了2020华为开发者大会,发布了鸿蒙OS 2.0、EMUI 11,并介绍HMS生态目前最新的成果和进展。大会上,华为消费者业务CEO余承东表示,鸿蒙OS 2.0全面使能全场景生态&#xf…

python学习随笔day3

文档读写 #文档内容切片fopen(abc,r,encodingutf-8) #abc是文档名称count 0;for line in f: if count9: print("--------------------------------切割线----------------------------------") count 1 continue print(line.strip()) …

mybatis mysql5.7_spring boot整合ES+mysql5.7+mybatis+iview个人博客系统

项目描述目前博主正在开发自己的博客,分享的目的,是为了给自己留一版基础代码,好用来以后,做二次开发,也方便大家做二次开发。这个代码我还整合了其他的东西,比如qz定时器,shiro,只不…

人工智能写出第一篇文章:我真的没想要消灭你们,人类!

来源:网信科技前沿在攻克棋类,飞行操控,机器视觉,语音识别等领域后,人工智能又开始入侵写作领域。人工智能被人类开发出来是为了方便我们人类的生活,帮助人类处理一些事物,它的优点在于其拥有庞…

Vue项目开发1-项目的创建

一.环境搭建准备: 1.确保项目已经安装了node 2.webpack安装 npm install webpack -g (安装过略过) 3.安装vue-cli脚手架构建工具,打开命令行工具输入:npm install vue-cli -g (安装过略过) 二.构…

html间隔代码_HTML+CSS基础入门开发,经典Loading加载缩放动画特效

大家好,本篇文章分享经典Loading加载缩放动画特效,欢迎参考和指正。效果图:Loading加载缩放动画特效HTML代码:CSS代码:知识点:animation:是CSS3的动画属性,这里把animation绑定到tui…

造一个鸿蒙,仅有华为还不够

来源:雷锋网作者:肖漫“全场景”一词,可以说是整个开发者大会上的高频词汇,在介绍鸿蒙系统 2.0 时,余承东强调,鸿蒙 OS 是首个真正为全场景时代打造的分布式操作系统。用王成录会后采访的话说,鸿…

洛谷 P1091 合唱队形

题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2&…

mysql怎么禁止远程连接_mysql如何设置禁止远程连接

mysql设置禁止远程连接的方法:1、登录数据库服务器,指定mysql数据库;2、执行【update user set hostlocalhost where userroot;】语句;3、刷新权限表。具体步骤:use mysql #打开mysql数据库#将host设置为localhost表示…

凌复华:冯·诺依曼在量子力学领域的贡献

来源:科学出版社约翰冯诺依曼(John von Neumann,1903.12.28—1957.2.8)这个名字, 对大多数读者都不会是陌生的.人们首先想到的很可能是他在研制世界上第一颗原子弹和第一台可编程数字式电子计算机中所做的贡献.这些确实是他的重要成就,但他对人类的贡献远不止于此.冯…

小程序 鼠标事件

微信小程序鼠标事件 事件分类 事件分为冒泡事件和非冒泡事件: 1. 冒泡事件(bind):当一个组件上的事件被触发后,该事件会向父节点传递。 2. 非冒泡事件(catch):当一个组件上的事件被触发后,该事件不会向父节点传递。 bi…

agd插值算法_(1)常见插值算法

图像的缩放很好理解,就是图像的放大和缩小。传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画。当然,在计算机上,我们不再需要用放大尺去放大或缩小图像了,把这个工作交给程序来完成就可以了。下面就来讲讲…

5条出人意外的大脑秘密,奇奇怪怪的知识又增加了!

来源:混沌巡洋舰本文授权摘自《人体简史》,作者 比尔布莱森 ,畅销书《万物简史》作者。1 你的大脑80%都是水作为一项纯粹的奇迹,人类的大脑长得毫不起眼。首先,它有75%~80%都是水,其余的主要成分…

sublime 设置新建文件自动添加author(作者)等文件头信息

很多时候, sublime 自带自动添加文件头信息, 但是并不是我们想要比如下面这样的:新建一个python文件 自动添加的author 信息 上面并不是我想要的, 我想要下面这样的效果: 这就需要我们设置插件来自定义化, 步骤1) 安装 file Header 插件 (一般默认已经安装)2) 设置变量 比如aut…

文章标题(备注)

现在也裁员了吗?怎么感觉越来越垃圾 这个又是什么?真搞笑,我也没开隐私呀

linux 的swap具体分析_SWaP的SWAP分区分析

展开全部SWAP就是LINUX下的虚拟内存分区,它62616964757a686964616fe78988e69d8331333361303030的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用 。它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,…

你住的城市7.5亿年前长啥样?这张互动地图能让你看到

大数据文摘出品来源:CNN编译:Hippo一位加利福尼亚的古生物学家绘制了一张交互地图,使人们可以看到他们的家乡在超过7.5亿年的大陆漂移中迁移了多远。文摘菌顺手搜了一下7.5亿年前的北京,如下图中红点所示,那时候的北京…

CSS计数器(自定义列表)

概念 CSS3计数器(CSS Counters)可以允许我们使用css对页面中的任意元素进行计数,实现类似于有序列表的功能(自定义有序列表) 与有序列表相比,它的突出特性在于可以对任意元素计数,同时实现个性化…

李国杰院士:关于人工智能本质和价值的13个判断,谨防重蹈覆辙!

来源:科技金眼本文摘自最新出版的《中国科技热点述评2019》(科学出版社,2020年7月)。为了避免曲解院士意思,我们这次只做院士思想的搬运工,全部是原汁原味的干货摘抄。作为读书笔记与大家分享,全…

iOS:图片相关(19-05-09更)

1、图片显示相关 1)、图片聊天背景拉伸不失真 2)、捏合、双击、下拉缩放 3)、Banner、相册 4)、动画 2、图片操作相关 1)、获取、下载图片(分享、传图片用) 2)、保存UIImage到本地 3…