发布

MySQL原理与应用

MySQL原理与应用
专栏成员
28
文章
2664
阅读量
11
订阅数
分库分表—4.数据迁移系统文档一
(3)binlog消息消费记录表——etl_binlog_consume_record
东阳马生架构
2025-02-19
370
分库分表—3.详细介绍四
系统启动时,会针对每个增量同步任务都提交一个CanalPullCommitRunner任务到线程池。接着当offset提交线程CanalPullCommitRunner一旦启动,就会创建一个RocketMQ的Consumer,监听同样的topic,同时也关闭自动提交offset。CanalPullCommitRunner和CanalPullRunner里的Consumer,虽然topic一样但group不一样。
东阳马生架构
2025-02-18
830
分库分表—3.详细介绍三
全量同步 + 增量同步 -> 让多库多表数据和单库单表数据持平 -> 数据校验 -> 无损发布 -> 老系统下线 -> 线上多库多表DDL运维 -> 多库多表再次扩容
东阳马生架构
2025-02-18
560
分库分表—2.详细介绍二
(3)MigrateConfig类会加载migrate.properties配置文件里的配置
东阳马生架构
2025-02-17
500
分库分表—2.详细介绍一
其实分库分表方案的设计并不难,基于ShardingSphere进行开发也不难。难点在于如何把设计和开发好的分库分表方案和代码部署到线上。
东阳马生架构
2025-02-17
570
分库分表—1.简要概述
读写磁头在磁盘扇区上读取或者写入数据花费的时间,也就是一次完整的磁盘IO花费的时间,包括如下三个方面:
东阳马生架构
2025-02-17
1160
MySQL底层概述—10.InnoDB锁机制
undo log版本链 + Read View机制实现的MVCC多版本并发控制,可以防止事务并发读写同一数据时出现的脏读+不可重复读+幻读问题。但除脏读+不可重复读+幻读问题外,并发读写同一数据还有脏写问题。就是当多个事务并发更新同一条数据时,此时就可能会出现脏写问题,如下图示:
东阳马生架构
2025-02-14
1710
MySQL底层概述—9.ACID与事务
每写一个事务都会修改Buffer Pool,产生Redo、Undo日志。如果事务提交后redo log已刷入磁盘,此时机器恰好宕机了,那么就可以根据redo log恢复事务修改过的缓存数据。如果需要回滚事务,那么就可以基于undo log进行回滚,也就是通过undo log回滚事务之前对缓存页做的修改。所以undo日志实现了事务的原子性。
东阳马生架构
2025-02-13
1340
MySQL底层概述—8.JOIN排序索引优化
Join是用来联表匹配两个表的数据,筛选并合并出符合要求的结果集。Join操作有多种方式,取决于最终数据的合并效果。常用连接方式的有以下几种:
东阳马生架构
2025-02-13
670
MySQL底层概述—7.优化原则及慢查询
使用Explain关键字可以模拟查询优化器来执行SQL查询语句,从而知道MySQL是如何处理SQL语句的,从而分析出查询语句和表结构的性能瓶颈。
东阳马生架构
2025-02-12
2150
MySQL底层概述—6.索引原理
索引会在数据文件中(ibd文件),通过数据页(Page)进行存储。索引可以加快检索速度,但也会降低增删改速度,索引维护需要代价。
东阳马生架构
2025-02-11
910
MySQL底层概述—5.InnoDB参数优化
一个大的日志缓冲区允许大量的事务在提交之前不写日志到磁盘,因此如果有很多增删改操作,通过设置该参数可大量减少磁盘IO次数。
东阳马生架构
2025-02-11
1010
MySQL底层概述—4.InnoDB数据文件
一个表空间会包含多个段,一个段会包含多个区(256个区就是一个组);一个区又会包含64个页,一个页里面又会包含一行一行的记录Row。
东阳马生架构
2025-02-11
1150
MySQL底层概述—3.InnoDB线程模型
InnoDB存储引擎是多线程的模型,因此其后台有多个不同的后台线程,负责处理不同的任务。
东阳马生架构
2025-02-11
640
MySQL底层概述—2.InnoDB磁盘结构
Tablespaces、InnoDB Data Dictionary、Double Write Buffer、redo log和undo log。
东阳马生架构
2025-02-11
1060
MySQL底层概述—1.InnoDB内存结构
Buffer Pool是缓冲池的意思。Buffer Pool的作用是缓存表数据与索引数据,减少磁盘IO,提升效率。
东阳马生架构
2025-02-10
1200
MySQL原理简介—12.MySQL主从同步
主库接收增删改操作,把增删改操作BinLog写入本地文件。然后从库发送请求给主库,从主库中拉取BinLog。接着从库会重新执行一遍BinLog的操作,还原出一样的数据。
东阳马生架构
2025-02-10
690
MySQL原理简介—11.优化案例介绍
某互联网公司的用户量比较大,有百万级日活用户的一个量级。该公司的运营系统会专门通过各种条件筛选出大量用户发送推送消息,比如一些促销活动的消息、办会员卡的消息、特价商品的消息。在这个过程中,比较耗时的是筛选用户的过程。
东阳马生架构
2025-02-10
1070
MySQL原理简介—10.SQL语句和执行计划
一般开发一个系统,都是先设计表结构,表结构必须满足业务需求。然后写代码,代码写完后,根据代码是如何查询表来设计表的索引,需要考虑设计几个索引,选择哪些字段作索引,是不是联合索引,以及如何排列索引字段的顺序才能让查询语句都用上索引。
东阳马生架构
2025-02-09
990
MySQL原理简介—9.MySQL索引原理
数据库所有的数据都会存放到磁盘上的文件,数据在文件里存放的物理格式就是数据页,大量的数据页会按顺序一页一页存放的,两两相邻的数据页之间会采用双向链表的格式互相引用。
东阳马生架构
2025-02-09
880
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档