前不久看了SQL优化的视频,学的时候醍醐灌顶,学完后发现就是在围绕着explain的各个字段讲解,先把学习的知识梳理一下,当然自己还是有很多不会的地方,后期不断完善。sql优化是面试必问的面试点,而 SQL优化主要就是在优化索引。 在学习索引优化之前,需要知道SQL的执行顺序,这里只给结论,深入学习可参考文章:步步深入: mysql 架构总览->查询执 ......
150
0
0
2023-11-02
mysql – 死锁 的产生及解决方案1. 死锁与产生死锁的四个必要条件1.1 什么是死锁 死锁 是指 2+ 的 进程 在 执行过程 中,由于竞争资源或者由于彼此通信而造成的一种 阻塞 的现象,若无外力作用,它们都将 无法推进 下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死 ......
215
0
0
2023-10-12
目录一、关系型数据库设计规则二、数据完整性和约束与索引的概念三、约束的应用一、关系型数据库设计规则遵循ER模型和三范式E entity 代表实体的意思 对应到数据库当中的一张表R relationship 代表关系的意思三范式:1、列不能拆分2、唯一标识3、关系引用主键具体体现将数据放到表中,表再放到库中。一个数据库中可以有多个表,每个表都有一个名字,用来标 ......
226
0
0
2023-09-16
来自: 贝壳DBA 咱们使用 MySQL 大概率上都会遇到死锁问题,这实在是个令人非常头痛的问题。本文将会对死锁进行相应介绍,对常见的死锁案例进行相关分析与探讨,以及如何去尽可能避免死锁给出一些建议。 –什么是死锁 — 死锁是并发系统中常见的问题,同样也会出现在数据库MySQL的并发读写请求场景中。当两个及以上的事务,双方都在等待对方释放已经持有的锁或 ......
241
0
0
2023-09-15
数据库1. 查看现有数据库 SHOW DATABASES;2. 新建数据库 CREATE DATABASE <数据库名>;3. 选择数据库 USE <数据库名>;4. 从.sql文件引入SQL语句 SOURCE <.sql文件路径>;5. 删除数据库 DROP DATABASE <数据库名>;表6. 查看当前数 ......
162
0
0
2023-09-12
目录内存结构Buffer PoolRedo log buffer​Double Write Buffer磁盘文件表空间重做日志文件InnoDB架构图内存结构Buffer Poolwhy buffer pool ?InnoDB是基于磁盘存储,其存储的最基本单元是页,大小为16KB。而CPU和磁盘之间速度相差悬殊,所以通常使用内存中的缓冲池来 ......
161
0
0
2023-09-11
目录索引是什么?索引的结构?索引存在哪儿?索引的优缺点?索引的分类 索引使用explain执行计划索引使用规范(索引失效分析)例子总结:索引是什么?索引是帮助MySQL进行高效查询的一种数据结构。好比一本书的目录,能加快查询的速度索引的结构?索引可以有B-Tree索引,Hash索引。索引是在存储引擎中实现的InnoDB / MyISAM 仅支持 B ......
197
0
0
2023-09-11
目录1.对数据库常用命令2.数据库中对表的命令插入数据数据查询常用函数模糊查询多表连接查询MySQL的事务,视图,索引,备份和恢复1.对数据库常用命令1.连接数据库mysql -u用户名 -p密码2.显示已有数据库show databases;3.创建数据库create database sqlname;4.选择数据库use database sqlname ......
210
0
0
2023-09-10
目录Mysql索引索引介绍索引是什么索引的优势和劣势索引类型主键索引普通索引唯一索引全文索引空间索引前缀索引其他(按照索引列数量分类)索引的数据结构Hash表二叉查找树平衡二叉树B树:改造二叉树B+树:改造B树Mysql的索引实现MyIsam索引InnoDB索引总结避免回表联合索引的使用Mysql索引索引介绍索引是什么官方介绍索引是帮助MySQL高效获取数据 ......
148
0
0
2023-09-10
目录mysql 间隙锁加锁11个规则next-key lock的加锁规则案例分析案例一:唯一索引等值查询间隙锁案例二:非唯一索引等值查询锁案例三:主键索引范围查询锁案例四:非唯一索引范围查询锁案例五:唯一索引范围查询锁 bug案例六:非唯一索引上存在 " " 等值 " " 的例子案例七: limit 语句加锁案例八:一个死锁的例子案例九:order by索引 ......
184
0
0
2023-09-08
这篇关于 MySQL 中日期和时间的概述将帮助你在数据库表中处理时间值。流行数据库系统 MySQL 的新老用户常常会对数据库处理时间值的方式感到困惑。有时用户不会费心去了解时间值的数据类型。这可能是因为他们觉得本身也没有什么好了解的。日期就是日期,对吧?好吧,并非总是如此。花几分钟时间了解 MySQL 如何存储和显示日期和时间是有益的。学习如何最好地利用数据 ......
188
0
0
2023-08-31
数据库系统能够接受 SQL 语句,并返回数据查询的结果,或者对数据库中的数据进行修改,可以说几乎每个程序员都使用过它。而 MySQL 又是目前使用最广泛的数据库。所以,解析一下 MySQL 编译并执行 SQL 语句的过程,一方面能帮助你加深对数据库领域的编译技术的理解;另一方面,由于 SQL 是一种最成功的 DSL(特定领域语言),所以理解了 MySQL ......
155
0
0
2023-08-28
关于 MySQL 数据库,相信很多人都不陌生,这是当今最常用的一种 关系型数据库 ,关于 mysql 的知识也是很丰富的。 那么,不知道大家有没有想过这样的问题:MySql中的数据是存在哪的?又是如何存储的呢? 本文就来深入分析一下这些问题。文章内容很长,建议收藏,建议大家静下心来仔细阅读,一定会有收获! InnoDB 的存储格式 我们知道,关于M ......
146
0
0
2023-08-28
作者:CHEN川说起 MySQL 的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *、不使用NULL字段、合理创建 索引 、为字段选择合适的数据类型….. 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合 ......
149
0
0
2023-08-24
命名规范1.库名、表名、字段名必须使用小写字母,并采用下划线分割。 a) MySQL 有配置参数lower_case_table_names,不可动态更改,Linux系统默认为 0,即库表名以实际情况存储,大小写敏感。如果是1,以小写存储,大小写不敏感。如果是2,以实际情况存储,但以小写比较。b)如果大小写混合使用,可能存在abc,Abc,ABC等多个表共存 ......
179
0
0
2023-08-20