索引优化

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
复制代码
D:\MYSQL\mysql-5.7.20-winx64\mysql-5.7.20-winx64\data\WIN-20171216YUR-slow.log是慢日志:

SET timestamp=1515143608;
select * from emp where empno = 100004;
# Time: 2018-01-05T09:14:17.472000Z
# User@Host: root[root] @ localhost [127.0.0.1]  Id:     6
# Query_time: 0.704000  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 4000000
SET timestamp=1515143657;
select * from emp where empno = 100004;
# Time: 2018-01-05T09:15:02.444000Z
# User@Host: root[root] @ localhost [127.0.0.1]  Id:     6
# Query_time: 0.731000  Lock_time: 0.001000 Rows_sent: 1  Rows_examined: 4000000
SET timestamp=1515143702;
select * from emp where empno = 100044;
# Time: 2018-01-05T09:15:17.827000Z
# User@Host: root[root] @ localhost [127.0.0.1]  Id:     6
# Query_time: 0.712000  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 4000000
SET timestamp=1515143717;
select * from emp where empno = 105544;
# Time: 2018-01-05T09:30:59.422000Z
# User@Host: root[root] @ localhost [127.0.0.1]  Id:     6
# Query_time: 3.686000  Lock_time: 0.001000 Rows_sent: 5  Rows_examined: 4000000
SET timestamp=1515144659;
select * from emp where ename='OfjJBN';




四种索引(主键索引/唯一索引/全文索引/普通索引)

说起提高数据库性能,索引是最物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行个正确的’create index’,查询速度就可能提高百倍千倍,这可真有诱惑力。可是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的I/O。

Mysql发现和查询语句是一样的时候会从缓存中取。
复制代码

 

复制代码
添加索引后,只有通过索引来查就快,不通过索引查是不会快的。
.frm是表的结构,.MYD是表的数据,.MYI是索引文件。
只是拷贝.MYD文件到另一个数据库下面,索引要重新建立,因为索引里面包含有原始.MYD数据的原硬盘的地址,即使把.MYI文件拷贝过去也不行。

为什么建了索引就会变快(原来0.8秒的变成了0.003秒),
原来数据就是1,234567,不加索引的时候从1一直到4,即使到了4仍然继续向下找,因为不敢保证后面还有没有4,因此要全部检索完毕,所以就慢了。

二叉树算法:首先建立索引文件MYI,首先扫描emp有多少数据,然后构建一个二叉树记录中间的6(磁盘硬盘都是有物理地址的),效率是log以2为底N次幂。
Hash算法:
复制代码


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/8205950.html,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
JavaScript 前端开发 API
一文读懂TS的(.d.ts)文件
一文读懂TS的(.d.ts)文件
4263 0
Gbit与GByte比较
这段在看阿里的ECS指标,发现网络带宽的相关指标为Gbit/s,与平常的单位有些不同。先解释下差异并记录。
3743 0
Gbit与GByte比较
|
Java 中间件 Serverless
CSE:阿里在线应用如何演进成Serverless架构
**Cloud Service Engine**,简称**CSE**,是中间件部门研发的面向通用Serverless计算的中间件产品,目标是具备AWS Lambda的各种优势,同时可以解决AWS Lambda的关键技术缺陷。 AWS Lambda如果用于核心业务,可能会有以下缺陷:(仅代表个人观点) * 要求用户以Function为单位开发,全新的开发框架,云厂商强绑定。社区主
3233 0
|
存储 缓存 应用服务中间件
Nginx代理服务 - 代理缓冲区、代理重新定义请求头、代理连接超时
1. 代理缓冲区 代理服务器可以缓存一些响应数据,来减少I/O损耗,数据默认存储在内存中,当内存不够时,会存储到硬盘上。
|
机器学习/深度学习 人工智能 自然语言处理
真实世界的人工智能应用落地——OpenAI篇 ⛵
本文介绍大名鼎鼎的 OpenAI!概述其发展历程,并介绍几款已经实际落地的 AI 应用:GPT3、CLIP、DALL·E 2、Whisper、Codex、ChatGPT。
1986 0
真实世界的人工智能应用落地——OpenAI篇 ⛵
|
计算机视觉
openCV实践项目:银行卡卡号识别
openCV实践项目:银行卡卡号识别
openCV实践项目:银行卡卡号识别
|
存储 人工智能 算法
数据结构— 基本概念、逻辑和存储结构、数据类型与操作、算法特性与时间复杂度(上)
数据结构— 基本概念、逻辑和存储结构、数据类型与操作、算法特性与时间复杂度
733 0
数据结构— 基本概念、逻辑和存储结构、数据类型与操作、算法特性与时间复杂度(上)
|
消息中间件 ARouter 安全
「性能优化系列」APP启动优化理论与实践(下)
● 启动耗时监测实战:手动打点以及AspectJ方式对比; ● 启动优化实战:有向无环图启动器、IdleHandler启动器以及其他黑科技方案; ● 优化工具介绍。
527 0
|
计算机视觉 索引 Python
两张脸融合在一起长啥样?Opencv-Python 来告诉你!
1,Image Morphing 介绍 图像融合简单来说,通过把图像设置为不同的透明度,把两张图像融合为一张图像(一般要求图像需要等尺寸),公式如下:
两张脸融合在一起长啥样?Opencv-Python 来告诉你!
|
存储 API 网络架构
Elasticsearch集群API详解
Elasticsearch提供了大量了的Rest API用以操作相关功能,提供了极大的便利,掌握这些API是熟练地使用Elasticsearch的前提,这些API有Cluster APIs、Document APIs、Index APIs、Info API、Search Apis、Cat APIs等,本文主要讲解Cluster APIs,通过Cluster APIs可以查看集群简况、集群状态和统计信息、集群节点信息等。
476 0
Elasticsearch集群API详解