MySQL
文章平均质量分 84
隔壁阿布都
这个作者很懒,什么都没留下…
展开
-
Flyway使用入门
Flyway简介Flyway是一款开源的数据库版本管理工具。它可以很方便的在命令行中使用,或者在Java应用程序中引入,用于管理我们的数据库版本。在项目或产品中,很难一开始就把业务理清楚,把数据库表设计好,因此数据表也会在迭代周期不断迭代。在Java应用程序中使用Flyway,能快速有效地用于迭代数据库表结构,并保证部署到测试环境或生产环境时,数据表都是保持一致的。Flyway支持的数据库很多,从官网摘抄如下:Supported databases are Oracle, SQL Serv.原创 2021-06-30 16:48:21 · 2817 阅读 · 1 评论 -
十分钟搞懂 MySQL 中的事务实现原理
在Mysql中MVCC是在Innodb存储引擎中得到支持的,Innodb为每行记录都实现了三个隐藏字段:6字节的事务ID(DB_TRX_ID)7字节的回滚指针(DB_ROLL_PTR)隐藏的ID(DB_ROW_ID)1. Innodb的事务相关概念为了支持事务,Innbodb引入了下面几个概念:redo logredo log就是保存执行的SQL语句到一个指定的Log文件,当Mysql执行recovery时重新执行redo log记录的SQL操作即可。当客户端执行每条SQL(更新语..原创 2021-04-21 15:38:17 · 266 阅读 · 0 评论 -
十分钟搞懂MySQL 如何实现四大隔离级别
什么是MVCC?MVCC的全称是“多版本并发控制”。这项技术使得InnoDB的事务隔离级别下执行一致性读操作有了保证,换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值。这是一个可以用来增强并发性的强大的技术,因为这样的一来的话查询就不用等待另一个事务释放锁。这项技术在数据库领域并不是普遍使用的。一些其它的数据库产品,以及mysql其它的存储引擎并不支持它。在MySQL的众多存储引擎中,只有InnoDB支持事务,所有这里说的事务隔离级别指的是InnoDB下的事务隔离..原创 2021-04-21 15:30:03 · 1920 阅读 · 1 评论 -
MySQL 的读写分离原理及延迟问题处理
如何实现 MySQL 的读写分离?其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去。MySQL 主从复制原理的是啥?主库将变更写入 binlog 日志,然后从库连接到主库之后,从库有一个 IO 线程,将主库的 binlog 日志拷贝到自己本地,写入一个 relay 中继日志中。接着从库中有一个 SQL 线程会从中继日志读取 binlog,然后执行 binlog 日志中的内容,也就是在自己本地再次执行一遍 SQL,原创 2021-04-19 17:17:22 · 654 阅读 · 0 评论 -
红黑树与B树、B+树
一、红黑树1、红黑树的特性(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一个节点是红色的,则它的子节点必须是黑色的。(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。[这里指到叶子节点的路径]包含n个内部节点的红黑树的高度是 O(log(n)).如图:2、红黑树的使用场景java中使用到红黑树的有TreeSet和JDK1.8的HashMap原创 2021-04-01 11:17:55 · 7783 阅读 · 0 评论 -
五分钟快速理解数据库设计三大范式
数据库设计范式什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。什么是三大范式:第一范式:当关系模式R的所有属性都不能再分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。第二范式:如果关系模式R满足第一范式,并且R得所有非主属性都完全原创 2020-10-26 15:38:41 · 270 阅读 · 0 评论 -
三分钟搞懂 MySQL 隔离级别
三种bug:脏读:例:insert into T values (4, '牛D');,然后没commit。其他进程SELECT读取到的数据是未commit的数据。(数据库只修改了内存没修改外存)不可重复读:例:一个事务范围内两个相同的查询却返回了不同数据(因为中间有进程修改了值并且提交成功)幻读:例:某个事务在读取某个范围的数据,但是另一个事务又向这个范围的数据去插入数据,导致多次读取的时候,数据的行数不一致。READ UNCIMMITTED(未提交读) 在这种隔转载 2020-06-28 15:08:02 · 321 阅读 · 0 评论 -
面试官:请谈谈数据库的优化
一:简介MySQL性能优化是通过优化各个方面的,不仅仅是优化SQL语句这一方面,而是通过各各方面的优化,每个地方优化一些,这样整体性能就会有明显的提升。二:优化方式1. 优化数据库表结构的设计为什么数据库表的设计会影响性能?字段的数据类型:不同的数据类型的存储和检索方式不同,对应的性能也不同,所以说要合理的选用字段的数据类型。比如人的年龄用无符号的unsigned tinyint即可,没必要用integer数据类型的长度:数据库最终要写到磁盘上,所以字段的长度也会影响着磁盘的I/O操..原创 2020-06-28 14:19:17 · 761 阅读 · 0 评论 -
十分钟弄懂SQL 索引及优化
索引概念和作用索引是一种使记录有序化的技术,它可以指定按某列/某几列预先排序,从而大大提高查询速度(类似于汉语词典中按照拼音或者笔画查找)。索引的主要作用是加快数据查找速度,提高数据库的性能。MySQL 索引类型从物理存储角度上,索引可以分为聚集索引和非聚集索引。1.聚集索引(Clustered Index)聚集索引决定数据在磁盘上的物理排序,一个表只能有一个聚集索...原创 2019-10-18 11:12:06 · 3460 阅读 · 0 评论 -
centos 7如何优雅的安装mysql 5.7
1、进入官网下载 需要的mysql 版本https://dev.mysql.com/downloads/mysql/我这边下的是mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz2、将mysql安装到/usr/local/mysql下# 解压tar -zxvfmysql-5.7.22-linux-glibc2.12-x86_6...原创 2019-10-09 09:48:28 · 245 阅读 · 0 评论 -
mysql中union与union all的区别
UNION用的比较多union all是直接连接,取到得是所有值,记录可能有重复 union 是取唯一值,记录没有重复 1、UNION 的语法如下: [SQL 语句 1] UNION [SQL 语句 2]2、UNION ALL 的语法如下: [SQL 语句 1] UNION ALL [SQL 语句 2]效率:...转载 2019-02-12 14:18:03 · 210 阅读 · 0 评论