hello,大家好,我是张张,「架构精进之路」公号作者。对于 MySQL 索引,相信每位后端同学日常工作中经常会用到,但是对其索引原理,却可能未曾真正深入了解。B- 树和 B+ 树是 MySQL 索引使用的数据结构,对于索引优化和原理理解都非常重要,下面就揭开 B- 树和 B+ 树的神秘面纱,让大家在面试的时候碰到这个知识点一往无前,不再成为你前进的羁绊!本 ......
31
0
0
2024-12-02
Mysql中索引长度key_len探索表结构mysql> desc emp; +--------------+---------------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | ......
50
0
0
2024-11-05
索引简介索引是一个排好序的数据结构,包含着对数据表里所有记录的引用指针,如下图所示。索引文件和数据文件一样都存储在磁盘中,数据库索引的目的是在检索数据库时,减少磁盘读取次数。常见的索引数据结构包括二叉树、红黑树、Hash表、B树,可以通过www.cs.usfca.edu/~galles/vis…可视化学习这些数据结构。比如建立一个二叉树:MySQL中使用的索 ......
75
0
0
2024-10-31
前言本文若未特意说明使用的数据表,均为 MySQL索引(四)常见的索引优化手段 中的示例表。分页业务的索引优化在业务场景中,经常会使用到分页处理,那么sql 实现语句可能如下:SELECT * FROM employees limit 10000,10; 从"employees"表中选取10条数据,跳过前10000条数据,查询结果将返回"employees ......
50
0
0
2024-10-31
Trace 工具简介Trace 是 MySQL 5.6 版本后提供的 SQL 跟踪工具,用于了解优化器 (optimizer) 在选择执行计划时的决策过程,包括表访问方法、各种开销计算和转换等信息。当启用 trace 工具时,可以将跟踪结果记录到 INFORMATION_SCHEMA.OPTIMIZER_TRACE 表中,支持分析以下语句:SELECT、IN ......
60
0
0
2024-10-31
本文索引优化包含对 MySQL索引(三)explain实践,优化 MySQL 数据库查询性能 的一些补充。索引优化创建示例表CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMENT ......
51
0
0
2024-10-31
MySQL 安装为了方便管理,可以采用 docker 安装方式,也是小鱼在本文中给出的安装方式。MySQL 5.7 安装docker run -d \ -p 3306:3306 \ --privileged=true \ -v ./mysql5.7/conf/my.cnf:/etc/my.cnf \ -v ./mysql5.7/data:/var/l ......
49
0
0
2024-10-31
Explain工具EXPLAIN is used to obtain a query execution plan (that is, an explanation of how MySQL would execute a query).EXPLAIN 工具能用于获取查询执行计划,即分析 MySQL 如何执行一个 SQL 语句。我们可以通过使用EXPLAIN ......
74
0
0
2024-10-31
之前松哥写过一个 MySQL 系列,但是当时是基于 MySQL5.7 的,最近有空在看 MySQL8 的文档,发现和 MySQL5.7 相比还是有不少变化,同时 MySQL 又是小伙伴们在面试时一个非常重要的知识点,因此松哥打算最近再抽空和小伙伴们聊一聊 MySQL,讲讲原理,讲讲优化,我会从最基本最简单的开始,和大家梳理 MySQL 中常见的面试知识点。本 ......
104
0
0
2024-08-25
在 MySQL 中,索引是一种帮助存储引擎快速获取数据的数据结构,形象的说就是索引是数据的目录。它一般是以包含索引键值和一个指向索引键值对应数据记录物理地址的指针的节点的集合的清单的形式存在。通过使用索引, MySQL 可以在不需要扫描整个表的情况下快速找到与查询条件匹配的记录。1、MySQL 索引的介绍1.1、索引目的索引的目的在于提高查询效率,可以类比字 ......
217
0
0
2024-06-19
1.简介联合索引指建立在多个列上的索引。MySQL 可以创建联合索引(即多列上的索引)。一个索引最多可以包含 16 列。联合索引可以测试包含索引中所有列的查询,或仅测试第一列、前两列、前三列等等的查询。如果在索引定义中以正确的顺序指定列,则复合索引可以加快对同一表的多种查询的速度。下面是一个联合索引的例子。CREATE TABLE test ( id ......
320
0
0
2024-05-16
作者:付祥,现居珠海,主要负责 Oracle、MySQL、mongoDB 和 Redis 维护工作。爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文约 1700 字,预计阅读需要 6 分钟。MySQL 版本 5.7.341故障现象某业务监控报警内存不足,发现 mysqld 进程由于内存不足被 kill 自动重启了。[root@ ......
389
0
0
2024-04-08
👆 这是第 412 篇不掺水的原创,想要了解更多,请戳下方卡片关注我们吧~数据结构以及算法索引的本质其实就是一种数据结构。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找,这种复杂度为 O(n) 的算法在数据量很大时显然是糟糕的,好在计算机科学的发展提供了很多更优秀的查找算法,例如二分查找 ......
221
0
0
2024-03-13
前言MySQL索引是提升数据库查询性能的关键因素,但在某些情况下,索引可能会失效,导致查询变慢或无法使用索引。本文将介绍多个常见的MySQL索引失效场景,并提供相应的优化策略,帮助你避免索引失效,提升数据库的查询效率。大纲场景一:模糊查询使用通配符开头当使用模糊查询时,如果通配符(例如%,_)出现在查询字符串的开头,索引将无法生效。这是因为MySQL索引是从 ......
239
0
0
2024-01-18
作者:小傅哥 博客:https://bugstack.cn❝沉淀、分享、成长,让自己和他人都能有所收获!😜 ❞本文的宗旨在于通过简单干净实践的方式教会读者,如何更好地使用 MySQL 数据库。这包括;库表创建规范、字段的创建规范、索引的创建规范以及SQL使用的相关规范,通过这些内容的讲解,让读者更好使用 MySQL 数据库,创建出符合规范的表和字段以及建出合 ......
264
0
0
2024-01-15