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: 1select_type: SIMPLEtable: ex_materialtype: range
possible_keys: PRIMARYkey: PRIMARYkey_len: 4ref: NULLrows: 1553584Extra: Using where
1 row in set (0.00 sec)//不使用强制索引,真实查询耗时 200 rows in set (1.39 sec)
*************************** 1. row ***************************id: 1select_type: SIMPLEtable: ex_materialtype: ref
possible_keys: PRIMARY,idx_master_id,idx_masterid_dspid_filesource_isd,idx_createdkey: idx_master_idkey_len: 4ref: constrows: 1553584Extra: 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 index索引优化相关推荐
- MySQL force Index 强制索引概述
以下的文章主要介绍的是MySQL force Index 强制索引,以及其他的强制操作,其优先操作的具体操作步骤如下:我们以MySQL中常用的hint来进行详细的解析,如果你是经常使用Oracle的 ...
- 读薄《高性能MySql》(三)索引优化
读薄<高性能MySql>(一)MySql基本知识 读薄<高性能MySql>(二)Scheme与数据优化 读薄<高性能MySql>(三)索引优化 读薄<高性能M ...
- mysql force index报错_新特性解读 | MySQL 8.0 索引特性4-不可见索引
MySQL 8.0 实现了索引的隐藏属性.当然这个特性很多商业数据库早就有了,比如ORACLE,在11g中就实现了.我来介绍下这个小特性. 介绍 INVISIBLE INDEX,不可见索引或者叫隐藏索 ...
- mysql gis index 索引原理_从原理到优化,深入浅出数据库索引
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构. 数据库查询是数据库的最主要功能之一,我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的 ...
- mysql optimizer mrr_mysql 索引优化特性之MRR
MRR针对于辅助索引上的范围查询进行优化,收集辅助索引对应主键rowid.进行排序后回表查询,随机IO转顺序IO 当我们需要对大表(基于辅助索引)进行范围扫描时,会导致产生许多随机/O.而对于普通磁盘 ...
- Mysql详解——索引优化
本篇文章是对Mysql索引的创建以及优化进行一个介绍,关于索引的底层原理可以看我另一篇文章:Mysql详解--索引详解 文章目录 一.索引的创建和设计原则 1. 索引的声明和使用 1.1 索引的分类: ...
- Mysql原理及索引优化分析
一.Mysql索引数据结构 (https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 数据结构可视化) 1.二叉树 特点:二叉树, ...
- MySql ORDER BY 索引优化
上一篇:MySql 索引优化 MySql 支持两种方式的排序,FileSort 和 Index ,Index 效率高,它指的是 MySql 扫描索引本身完成排序.FileSort 会对数据使用一个外部 ...
- mysql存储引擎 索引优化_MySQL存储引擎,索引及基本优化策略
存储引擎 与Oracle, SQL Server这些数据库不同,MySQL提供了多种存储引擎.什么是存储引擎?存储引擎其实就是一套对于数据如何存储,查询,更新,建立索引等接口的实现.不同存储引擎特性有 ...
最新文章
- oracle之分析函数over及开窗函数
- Linux信号 四 异步等待信号与同步等待信号接口
- mysql safe无法启动_解决mysqld_safe无法启动问题的方法
- for、enumerat、range、xrange
- php fatal error 500,PHP在Linux下出现HTTP ERROR 500解决方法
- python 装饰器装饰类
- windows事件id大全_技术转载 || springboot+redis做过期事件通知业务
- python解析器打包_打包发布Python模块的方法详解
- python常用网站信息收集:持续更新版本--
- 使用@AspectJ注解开发Spring AOP
- [NOIP2016 普及组 T1] 买铅笔
- Operator基础:1: Operator Framework简介
- 88E1111与千兆网口连接
- dell更换硬盘识别不了新的硬盘
- 5G LTE窄带物联网(NB-IoT)8
- PostgreSQL插入大量数据:pg_testgen插件
- 微信公众平台接入机器人小黄鸡
- Windows server 2012 服务器挂载NAS盘
- 【杂纪】从ROC曲线到AUC值,再到Mann–Whitney U统计量
- iOS开发之加载、滑动翻阅大量图片优化解决方案
热门文章
- next和nextLine的使用
- 塑化行业SCM供应链管理平台授信支付与供应链金融,轻松交易
- 计算机 云 开发,云计算ppt-【ppt】介绍一种计算机新技术的基本原理、应用和发展情况。(如云计算、物联网、嵌入式软件设计开发等)...
- 动态规划之深入灵魂的解读(非常好)
- yarn安装vue-cli
- 转-超声系统的信号链设计注意事项
- GAZEBO INSTALLATION SCRIPT Problems The following packages have unmet dependencies: gazebo11
- java什么是格式化数字,java中对数字进行格式化
- 【MOS】OCR/Vote disk 维护操作: (添加/删除/替换/移动) (文档 ID 1674859.1)
- c语言整数各位数字求和