背景考虑下面两个并发带来的问题:1、丢失更新:一个事务的更新结果覆盖了其它事务的更新结果,即所谓的更新丢失。2、脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。例如:两个用户同时修改商品库存表,A、B同时进入,看到的库存都是100,A购买一件把库存修改为99(100-1)。此时B购买两件把库存修改为98(100-2),因为A、B同时读到的库存都 ......
399
0
0
2022-12-09
前 言 🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 🍌 专栏简介:mysql进阶,主要讲解mysql数据库进阶知识,包括索引、数据库调优、分库分表等 🌰 文章简介:本文将介绍数据库优化的步骤、思路、性能分析工具,比如慢查询、EXPLAIN,SHOW PROFILING等,并且对各个工具执行性能分析结果性能参数都有详细的介绍 ......
483
0
0
2022-12-07
前 言🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端1、索引的声明与使用1.1. 索引的分类先介绍下索引的分类,方便后续介绍索引的创建与设计。按照功能逻辑划分,索引主要有:普通索引、唯一索引、主键索引、全文索引、空间索引(并非所有数据库都有空间索引)按照物理实现划分,索引主要有:聚簇索引、非聚簇索引。按照作用字段个数划分,索引 ......
357
0
0
2022-12-06
前言前面我们已经剖析了mysql中InnoDB与MyISAM索引的数据结构,了解了B+树的设计思想、原理,并且介绍了B+树与Hash结构、平衡二叉树、AVL树、B树等的区别和实际应用场景。页和页之间并不一定在物理上相连,只是在逻辑上使用双向链表关联。指针、记录究竟是如何存储的呢?其实这就需要联系我们之前提到的行格式了。数据查找在页目录中二分法快速定位到槽,上 ......
393
0
0
2022-12-06
深度讲解索引的数据结构:B+树1.索引介绍1.1 为什么使用索引1.2 索引的优缺点2.从零开始设计索引2.1没有索引时怎么查询数据2.2 基于页的目录项的简单索引2.3 InnoDB索引设计方案2.3.1 迭代1:目录项的数据页(目录页)2.3.2 迭代2:多个目录页2.3.3 迭代3:目录页的目录页3.索引类型3.1.聚簇索引3.2 二级索引3.3 联合 ......
377
0
0
2022-12-06
InnoDB 是怎么存储数据的InnoDB 是怎么存储数据的?数据目录 -> 聚簇索引 -> 页 -> 行格式 -> 独立表空间 -> 区,组,段 -> 系统表空间……数据目录众所周之,MySQL 的数据是存储在硬盘中的,而操作系统管理硬盘中的数据的方式就是文件系统,所以通俗的来说,MySQL 中的数据是存在一个个文件中的 ......
453
0
0
2022-11-28
MySQL 事务之前对事务的了解仅限于知道要么全部执行,要么全部不执行,能背出 ACID 和隔离级别,知其然但不知其所以然,现在觉得非常有必要系统学一下,关于事务,关于 LBCC,关于 MVCC,关于死锁 ……并发的问题所谓 事务 是用户定义的一个 数据库操作序列, 这些操作要么全做,要么全不做,是一个不可分割的工作单位,在关系型数据库中,一个事务可以是一条 ......
448
0
0
2022-11-28
1.事务的概念事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。在不同的环境中,都可以有事务。对应在数据库中,就是数据库事务。2.事务的特性(ACID)1)原子性:事务中的若干个操作只有两种结果,全部成功和全部失败(“全部失败”不是指全部步骤都失败了,而是一旦中间某个步骤执行出错,就把前面已经执行完毕的步骤回滚回去)2)一致性:执行 ......
369
0
0
2022-11-28
MySQL约束1.主键约束(primary key)——PK2.自增长约束(auto_increment)3.非空约束(not null)4.唯一约束(unique)5.默认约束(default)6.零填充约束(zerofill)7.外键约束(foreign key)——FKMySQL约束——非空约束(not null)a.非空约束方式一:创建表时指定语法: ......
539
0
0
2022-11-24
一、简介pt-query-digest是用于分析mysql慢查询日志的工具,它还可以分析来自“SHOW PROCESSLIST”和MySQL的查询 tcpdump中的协议数据。我们可以把分析日志输出到指定的文件中,通过分析日志文件做对应的优化等操作。二、下载并且安装根据不同的系统安装,我的系统是centos,所以直接选择centos安装,点击下载直接使用yu ......
456
0
0
2022-11-24
4. 约束4.1 概述概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确、有效性和完整性。分类:注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。4.2 约束演示上面我们介绍了数据库中常见的约束,以及约束涉及到的关键字,那这些约束我们到底如何在创建表、修改表的时候来指定呢,接下来我们就通过一个案例,来 ......
433
0
0
2022-11-23
4.4.4 测试分别在两台主库Master1、Master2上执行DDL、DML语句,查看涉及到的数据库服务器的数据同步情况。create database db01; use db01; create table tb_user( id int(11) not null primary key , name varchar(50) not null ......
361
0
0
2022-11-23
4.4.3.2 从库配置1). Slave1(192.168.200.212)A. 修改配置文件 /etc/my.cnf#mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 232-1,默认为1 server-id=2 B. 重新启动MySQL服务器systemctl restart mysqld 2). Slave2(192.168.20 ......
378
0
0
2022-11-23
4.4.3 搭建4.4.3.1 主库配置1). Master1(192.168.200.211)A. 修改配置文件 /etc/my.cnf#mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 2^32-1,默认为1 server-id=1 #指定同步的数据库 binlog-do-db=db01 binlog-do-db=db02 bin ......
354
0
0
2022-11-23
4.3.2 server.xml配置配置root用户可以访问SHOPPING、ITCAST 以及 ITCAST_RW逻辑库。<user name="root" defaultAccount="true"> <property name="password">123456</property> <property ......
367
0
0
2022-11-23