# MySQL 索引优化原则的实现流程
在数据库的日常开发中,索引是提升查询性能的重要工具。作为一名新手开发者,了解并优化 MySQL 的索引将大有裨益。本文将通过一个清晰的流程来帮助你理解和实现 MySQL 索引优化的原则。
## 索引优化流程步骤
| 步骤编号 | 步骤描述 |
|----------|-------------------------|
MySql索引优化详解1、索引索引在数据库中用来提高查询的效率(类似新华字典的偏旁部首检索),可以避免全表扫描查询;索引的缺点:创建索引会占用磁盘空间,尤其是表很大且创建索引的字段值比较多且内容比较长的话更是如此对于写入操作,如insert、update、delete等操作,索引会降低它们的速度2、索引建立的原则1、索引要建在使用较多的字段上2、尽量不要在相同值较多的字段上建立索引,比如姓名3、对
转载
2023-09-18 11:04:00
58阅读
写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记 录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4 个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间
一、建索引的几大原则
1.最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。2.=和in可以乱序,比
转载
2023-06-25 19:01:09
122阅读
选择优化的数据类型 简单的原则: 1,更小通常更好 一般来说,要试着使用能正确地存储和表示数据的最小类型。更小的数据类型通常更快,因为它们使用了更少的磁盘空间、内存和CPU缓存,而且需要的CPU周期也更少。 但是要确保不会低估需要保存的值,在架构中的多个地方增加数据类型的范围是一件极其费时费力的工作。如果不确定需要什么数据类型,就选择你认为不会超出范围的最小类型。(如果系统不是非常繁忙或不会保存太
在面试或者实际的工作中,我们都会遇到会需要优化MySql的场景,那么优化MySql的原理到底是什么呢。曾经看过一篇公众号文章,具体阐述了MySql的优化原理,所以我的绝大部分见解是基于这篇文章之上,其他部分是自己参考了其他的博客包括查询了大量的资料获得的经验。首先盗一张图来看下MySql的优化原理吧,方便大家更方便的理解MySql,以下是MySql的运行图片 根据当前的图片我们可以根据他的执行过
一、引言 我们都知道索引是为了提高数据检索的性能,但是不合适的索引或者使用不当等因素,也会使得索引失效导致全表扫描,这篇文章简单汇总一下索引优化的原则。二、索引优化规约【重要】1、直接用索引列当查询条件2、最左前缀法则3、不在索引列上做任何运算操作4、把带范围的查询条件放在sql最后5、尽量使用覆盖索引,减少 select * 语句6、避免使用不等于(!=或者<>),not in ,
转载
2023-06-23 18:39:03
207阅读
本篇依然可以使用 explain 工具,分析 SQL 执行实际使用的索引。联合索引的最左匹配原则,非常重要的原则:MySQL 会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如 where a = 3 and b = 4 and c < 5 and d = 6,如果建立 (a、b、c、d) 顺序的联合索引,d 是用不到联合索引的,如果建立 (a、b
转载
2023-08-11 12:56:14
111阅读
索引优化原则1、最左前缀匹配原则,联合索引,mysql会从做向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a=1andb=2andc>3andd=4如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。 2、=和in可以乱序,比如a=1andb=2andc=3建立
原创
2017-11-27 18:30:50
1306阅读
索引优化原则 1 数据类型的选择 数据类型越小越好,越简单越好,避免null值 2
原创
2022-12-08 10:19:46
112阅读
索引对性能的影响:优: 减少服务器需要扫描的数据量,提高查询速度缺: 降低写的速度,占用磁盘空间 非常小的表,大部分情况下全表扫描效率更高以存储字符串为例,可以选择char,varchar,text类型。 1、 char长度固定, 即每条数据占用等长字节空间;最大长度是255个字符。 2、 varchar可变长度,可以设置最大长度;最大空间是65535个字节。 3、 text不设置长度;最多保存
建立索引的几大原则 最左前缀匹配原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 ,如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整(参考原则2)。但是mysql查询优化器可能通过
索引的设计原则原则: 查询更快,占用空间少;适合的索引列在 where 字句中的列 或者连接字句指定的列;数据较少的表,索引效果差,没必要建立索引,因为建立索引,会产生索引文件,占用额外的磁盘空间,并且也需要去维护,反而增加了开销;不要过度的索引,因为索引也是需要磁盘空间的,过多的索引会降低写操作的性能,在修改表内容的时候,索引也需要进行重构的,索引列越多,这个维护索引的时间越长,所以只要保持需要
转载
2023-08-27 22:03:38
76阅读
建索引的几大原则对于索引我总结三大原则:1、最左前缀原则;2、不冗余原则;3、最大选择性原则。基本掌握这三条,对于索引的优化理论上是没有问题了。最左前缀原则一般在where条件中两个及以上字段时,我们会建联合索引。 高效使用索引的首要条件是知道什么样的查询会使用到索引,这个问题和B+Tree中的“最左前缀原理”有关,下面通过例子说明最左前缀原理。 MySQL中的索引可以以一定顺序引用多个列,这
MySQL优化——优化原则羡仙. • 2020 年 03 月 10 日介绍Mysql优化可以分为三个层面,即设计层面,架构层面,SQL语句来进行优化.优化原则数据库在设计的时候严格按照范式设计,特殊情况下可反范式设计.字段尽可能的使用小的数据类型.开启慢查询,分析比较慢的SQL语句,记录下进行分析和处理.使用explainSQL语句进行分,分析比较慢改写SQL语句或者针对需要的
一、 B+Tree 相比于其他索引数据结构(如 B-Tree、二叉树,以及 Hash 表)的优势;二、掌握实际工作中常用的建立高效索引的技巧(如前缀索引、建立覆盖索引等)。三、索引使用原则一、MySQL从数据结构的角度来看, MySQL 常见索引有 B+Tree 索引、HASH 索引、Full-Text 索引。 MySQL 常见的存储引擎 InnoDB、MyISAM 和 Memory 。 在实际应
原创
2023-04-23 12:40:00
80阅读
创建表CREATE TABLE login_user(`id` SMALLINT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,`username` CHAR(8) NOT NULL,`password` CHAR(4) NOT NULL,`level` TINYINT (1) DEFAULT 0,`last_login` CHAR(15) NO
原创
2021-04-21 20:44:07
220阅读
1 索引的好处
大大减少存储引擎需要扫描的数据量
排序以避免使用临时表
把随机I/O变为顺序I/O
2 实例
执行 select * from T where k between 3 and 5,需要几次树的搜索,扫描多少行?
创建表
插入数据
InnoDB索引组织结构
SQL查询语句的执行流程:
在k索引树找到k=3,取得 ID 300
再到ID树查到ID 300对应的R3
在k树
原创
2021-06-24 14:31:56
2582阅读
#3. 索引使用策略及优化##3.1 索引的好处##3.2 什么情况下可以用到B树索引(1) 定义有主键的列一定要建立索引 : 主键可以加速定位到表中的某行(2) 定义有外键的列一定要建立索引 : 外键列通常用于表与表之间的连接,在其上创建索引可以加快表间的连接(3) 对于经常查询的数据列最好建立索引① 对于需要在指定范围内快速或频繁查询的数据列,因为索引已经排序,其指定的范围是连续的,查询可以利用索引的排序,加快查询的时间② 经常用在 where子句中的数据列,将索引建立在where子句的
原创
2022-01-18 13:34:57
1460阅读
Mysql的优化原则1:1、使用索引来更快地遍历表。缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:a.有大量重复值、且经常有范围查询( > ,< ,> =,< =)和order by、group by发生的列,可考虑建立群集索引;b.经常同时存取多列,且每列都...
转载
2023-05-08 20:17:43
57阅读