mysql force作用_mysql force index 用途
mysql索引优化一直以来是DBA和开发人员长期坚持的一项基本工作,合理的索引对于业务来说非常重要,合理的索引能有效改善性能。因此在开发中,定期排查索引的有效性很重要,排查的根据就是历史sql,排查的目的就是优化索引,一个合格的开发人员要考虑未来1年的数据量的情况下sql的执行效率。
索引是否有效的方法是explain,它能反应很多内容,具体的不再赘述看下面的sql示例。
访问类型 ALL、index、range、 ref、eq_ref、const、system、NULL(从左到右,性能递增)
mysql> explain select id,created,expire from ex_xxx force index(PRIMARY) where status = 1 and created > 1546272000 and id < 17149185 and master_id = 0 order by id desc limit 200\G
// 使用强制索引,在真实查询耗时 200 rows in set (0.00 sec)
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: ex_material
type: range
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: NULL
rows: 1553584
Extra: Using where
1 row in set (0.00 sec)
//不使用强制索引,真实查询耗时 200 rows in set (1.39 sec)
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: ex_material
type: ref
possible_keys: PRIMARY,idx_master_id,idx_masterid_dspid_filesource_isd,idx_created
key: idx_master_id
key_len: 4
ref: const
rows: 1553584
Extra: Using index condition; Using where
1 row in set (0.00 sec)
显然mysql在查询优化时,使用了type=ref的索引,然后当idx_master_id建立的不合理时(发现320w数据,master_id=0的有310w,区分度不高),就会出现速度ref 类型比 range慢的情况。
这里就可以发现强制索引的用途了,可以使用force index 指定索引,来改善查询性能。
不过建议是临时sql查询使用,因为线上数据随着量的增加,调整索引是很常见的事情,如果在某个时间删除了,那么使用force index的逻辑就会出问题。
注:索引优化和代码结构优化一样,都是一项长期的工作
mysql force作用_mysql force index 用途相关推荐
- mysql optimize 作用_mysql optimize table
mysql 数据文件的使用是只扩展,不回收.对表执行delete之后,磁盘上数据文件是不会缩小的. 通常的做法,是先逻辑导出,然后truncate 原表(或者删除重建),再导入. 另外还有一种方法是o ...
- mysql show作用_mysql的show操作
SHOW CHARACTER SET 显示所有可用的字符集 SHOW CHARACTER SET; SHOWCHARACTER SET LIKE 'latin%'; SHOW COLLATION 输出 ...
- mysql bin-log作用_MySQL中的binlog的作用是什么?
前言 MySQL中有六种日志文件,其中二进制日志也与事务操作有一定的关系,对理解MySQL中的事务操作有着重要的意义. 二进制日志(binlog): 作用: 1,用于复制,在主从复制中,从库利用主库上 ...
- mysql show作用_MySQL show的用法
a. show tables或show tables from database_name; // 显示当前数据库中所有表的名称 b. show databases; // 显示mysql中所有数据库 ...
- mysql ibdata作用_mysql data文件夹下ibdata1 文件作用
ibdata1这个文件超级大, 查了一下, 大概的作用如下 是储存的格式 INNODB类型数据状态下, ibdata用来储存文件的数据 而库名的文件夹里面的那些表文件只是结构而已 由于mysql4.1 ...
- 查看mysql view作用_Mysql中View视图的作用
浙江PHP博客分享关于Mysql中使用View视图的作用.很多小伙伴知道视图的作用,却不知道为什么要使用视图以及视图的一些好处是什么,下面浙江一点PHP将详细阐述关于视图的用法以及作用. 作用一: 提 ...
- mysql rollback作用_mysql rollback 原理以及若干疑问
最近在研究mysql的事务,参考了网上的一些例子写了一些,但是感觉有一点疑问,google后发现还是没找到答案,翻了下源码,还没找到核心关键点,想请大神们,帮忙指个路 1.如果在commit之前发生异 ...
- mysql union 作用_Mysql联合查询UNION和UNION ALL的使用介绍
Mysql联合查询UNION和UNION ALL的使用介绍 一.UNION和UNION ALL的作用和语法 UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行. UNIO ...
- mysql时区作用_mysql 时区问题
1.问题源自何处? 之前用的mysql 8.0以上的版本连接时都需要在url后面加 serverTimezone=UTC 实际上是指出核数据库的时区为美国.因为我们的数据库的时区是美国的,而我们连接的 ...
最新文章
- 14 个 Spring MVC 顶级技巧,随时用随时爽,一直用一直爽
- 2019年上半年国内学者在植物领域共发表6篇Science, 1篇Nature,1篇Cell!
- java控制器删除数据_javaWeb删除一条及多条数据
- RxJava使用(三)Scheduler 线程控制
- 20元以上200元以下罚款的交通违法行为
- LeetCode:螺旋矩阵【54】
- 对象入参指定泛型类型_如何得到正确的MethodInfo对象当一个类使用泛型和泛型类型参数...
- mysql创建非聚集索引_一文让你明白聚集索引和非聚集索引?
- android获取有线、wifi、3G(4G)的IP
- MAC中已有的虚拟环境在pycharm 中进行调用
- python 最小二乘法库_利用python搞机器学习——最小二乘法 | 学步园
- 想学plc但是没有计算机基础,没有电工基础可以学plc编程吗?能学懂PLC编程吗?...
- Excel取消自动行高调整(取消自动换行)
- 郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(一)推荐系统概述...
- dsp28335电机控制板资料 永磁同步电机有传感器三闭环foc控制
- 整数:求数组Nums中只出现一次的数
- 如何评价腾讯发布的区块链游戏《一起来捉妖》?
- WordPress关注微信公众号回复可见和阅读更多的方法
- java实现支付宝扫码支付详细步骤
- aarch64-linux-gnu交叉编译器二进制方式安装
热门文章
- b360m能插HTML,终于可以愉快装第八代平台了,那么首发B360主板都有哪些?
- 积分排名页面 html,欧洲联赛排名积分榜
- 51单片机-串口通信(串口向电脑发送信息电脑通过串口控制LED)
- set函数python作用_pythonset函数是什么
- 使用nat123远程ssh连接WSL Ubuntu系统
- 人工神经网络文献综述,人工神经网络参考文献
- 学校计算机和网络安全情况,学校网络安全自查报告
- typedef typename
- 知识图谱 Protege 本体构建
- 你想要的宏基因组-微生物组知识全在这(2023.3)