![](https://img-blog.csdnimg.cn/5a72d3d5d468470cb8d083b8666c309b.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 92
MySQL学习过程中的笔记,主要参考资料为黑马程序员的MySQL课程
左右盲
走得慢,会很快
展开
-
【MySQL】事务原理
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。实际上,我们研究事务的原理,就是研究MySQL的InnoDB引擎是如何保证事务的这四大特性的。而对于这四大特性,实际上分为两个部分。其中的原子性、一致性、持久化,实际上是由InnoDB中的两份日志来保证的,一份是redo log日志,一份是undo log日志。而持久性是通过数据库的锁,加上MVCC来保证的。原创 2022-09-13 17:46:40 · 604 阅读 · 0 评论 -
【MySQL】InnoDB引擎
表空间是InnoDB存储引擎逻辑结构的最高层, 如果用户启用了参数 innodb_file_per_table(在8.0版本中默认开启) ,则每张表都会有一个表空间(xxx.ibd),一个mysql实例可以对应多个表空间,用于存储记录、索引等数据。段,分为数据段(Leaf node segment)、索引段(Non-leaf node segment)、回滚段(Rollback segment),InnoDB是索引组织表,数据段就是B+树的叶子节点, 索引段即为B+树的非叶子节点。原创 2022-09-13 14:56:54 · 448 阅读 · 1 评论 -
【MySQL】锁
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。MySQL中的锁,按照锁的粒度分,分为以下三类:全局锁:锁定数据库中的所有表。表级锁:每次操作锁住整张表。行级锁:每次操作锁住对应的行数据。按照锁的类型来分,可以分为以下两类原创 2022-09-11 00:39:53 · 732 阅读 · 2 评论 -
【MySQL】触发器
触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性, 日志记录 , 数据校验等操作。原创 2022-09-08 17:31:29 · 1326 阅读 · 2 评论 -
【MySQL】存储过程与存储函数
存储过程是事先经过编译并存储在数据库中的一段SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库SQL 语言层面的代码封装与重用。存储函数是有返回值的存储过程原创 2022-09-08 02:04:51 · 4711 阅读 · 0 评论 -
【MySQL】视图
视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自我们定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。原创 2022-09-06 12:57:33 · 2324 阅读 · 4 评论 -
【MySQL】SQL优化
如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化。批量插入数据批量插入可以减少因为频繁访问数据库而带来的性能消耗手动控制事务由于插入操作默认是自动提交事务的,在这种情况下如果我们多次插入数据,那么数据库就要频繁开启事务和关闭事务,这是相当消耗性能的,因此我们需要对事务实行手动控制主键顺序插入按照主键的顺序插入数据比主键乱序插入效率高很多原创 2022-09-05 21:32:52 · 947 阅读 · 1 评论 -
【MySQL】索引
索引是帮助 MySQL 高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查询算法,这种数据结构就是索引。那我们为什么需要使用索引呢?假设现在有一张表结构如下:此时我们需要执行一条sql语句:如果我们没有建立索引,数据库就会从第一行开始扫描,一直扫描到最后一行,这种我们称之为全表扫描,性能很低。原创 2022-09-03 13:53:15 · 984 阅读 · 4 评论 -
【MySQL】存储引擎概述
存储引擎是mysql数据库的核心,是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。我们可以在创建表的时候,来指定选择的存储引擎,如果没有指定将自动选择默认的存储引擎。原创 2022-09-02 21:41:02 · 225 阅读 · 2 评论