随笔分类 - MySQL原理与应用
摘要:大纲 1.数据库设计 2.枚举类 3.接⼝设计 4.定时任务设计 (1)定时核对校验数据的定时任务 (2)数据量统计定时任务 (3)增量数据落地定时任务 (4)失败重试定时任务 5.技术亮点 (1)滚动拉取方案 (2)巧妙的统计滚动进度方案 (3)防止增量同步数据丢失和高效写入方案 (4)数据扩容方
阅读全文
摘要:大纲 18.基于Canal和RocketMQ的增量同步 19.增量同步任务的背景介绍 20.增量同步任务查询与线程池提交 21.RocketMQ里的binlog消息的消费逻辑分析 22.新增binlog的数据同步逻辑分析 23.binlog基于内存队列的异步转发逻辑 24.基于CAS加锁的读写队列互
阅读全文
摘要:大纲 1.分库分表在企业生产环境中面临的难题 2.从单库单表到多库多表的生产上线流程 3.上亿数据从单表复制到64张表的场景 4.单库单表到多库多表的全量复制方案 5.全量数据复制方案的中断恢复分析 6.数据迁移系统的工程结构和数据源配置 7.基于订单号和用户ID的分片路由算法 8.发起全量数据迁移
阅读全文
摘要:大纲 1.单库版本到分库分表的演进介绍 2.订单系统项目模版 3.完成一次查询全过程 4.磁盘IO为什么这么慢 5.MySQL的索引是如何形成的 6.SQL优化 7.千万级数据优化之加缓存—理论 8.千万级数据优化之加缓存—实战 9.千万级数据优化之读写分离-理论 10.千万级数据优化之读写分离-实
阅读全文
摘要:大纲 1.锁概述 2.锁分类 3.锁实战之全局锁 4.锁实战之表级锁(偏读) 5.锁实战之行级锁(偏写)—行级锁升级表级锁 6.锁实战之行级锁(偏写)—间隙锁 7.锁实战之行级锁(偏写)—临键锁 8.锁实战之行级锁(偏写)—幻读演示和解决 9.锁实战之行级锁(偏写)—优化建议 10.锁实战之乐观锁
阅读全文
摘要:大纲 1.ACID之原子性 2.ACID之持久性 3.ACID之隔离性 4.ACID之一致性 5.ACID的关系 6.事务控制演进之排队 7.事务控制演进之排它锁 8.事务控制演进之读写锁 9.事务控制演进之MVCC 10.事务隔离级别之隔离级别的类型 11.事务隔离级别之和锁的关系 12.事务隔离
阅读全文
摘要:大纲 1.Explain概述 2.Explain详解 3.索引优化数据准备 4.索引优化原则详解 5.慢查询设置与测试 6.慢查询SQL优化思路 1.Explain概述 使用Explain关键字可以模拟查询优化器来执行SQL查询语句,从而知道MySQL是如何处理SQL语句的,从而分析出查询语句和表结
阅读全文
摘要:大纲 1.Join算法原理 2.IN和EXISTS函数 3.MySQL排序之索引排序(Using index) 4.MySQL排序之额外排序(Using filesort) 5.排序优化之尽量使用索引排序 6.索引单表优化 7.索引多表优化 1.Join算法原理 (1)Join简介 (2)驱动表的定
阅读全文
摘要:大纲 1.索引原理 2.二叉查找树 3.平衡二叉树(AVL树) 4.红黑树 5.B-Tree 6.B+Tree 7.Hash索引 8.聚簇索引与非聚簇索引 1.索引原理 索引会在数据文件中(ibd文件),通过数据页(Page)进行存储。索引可以加快检索速度,但也会降低增删改速度,索引维护需要代价。
阅读全文
摘要:大纲 1.内存相关参数优化 (1)缓冲池内存大小配置 (2)配置多个Buffer Pool实例 (3)Chunk(块)大小配置 (4)InnoDB缓存性能评估 (5)Page管理相关参数 (6)Change Buffer相关参数优化 2.日志相关参数优化 (1)日志缓冲区相关参数配置 (2)日志文件
阅读全文
摘要:大纲 1.表空间文件结构 (1)表空间Tablesapce (2)段Segment (3)区Extend (4)页Page (5)行Row 2.Page结构 (1)页结构各部分说明 (2)页结构整体划分 3.行记录格式 (1)行格式分类 (2)COMPACT行记录格式 (3)Compact中的行溢出
阅读全文
摘要:大纲 1.InnoDB的线程模型 2.IO Thread 3.Purge Thread 4.Page Cleaner Thread 5.Master Thread 1.InnoDB的线程模型 InnoDB存储引擎是多线程的模型,因此其后台有多个不同的后台线程,负责处理不同的任务。 后台线程的作用一:
阅读全文
摘要:大纲 1.InnoDB磁盘结构 2.表空间(Tablespaces) 3.数据字典(Data Dictionary) 4.双写缓冲区(Double Write Buffer Files) 5.重做日志(redo log) 6.撤销日志(undo log) 7.二进制日志(binlog) 8.新版本结
阅读全文
摘要:大纲 1.InnoDB引擎架构 2.Buffer Pool 3.Page管理机制之Page页分类 4.Page管理机制之Page页管理 5.Change Buffer 6.Log Buffer 1.InnoDB引擎架构 (1)InnoDB引擎架构图 (2)InnoDB内存结构 (1)InnoDB引擎
阅读全文
摘要:大纲 1.异步复制为MySQL搭建一套主从复制架构 2.半同步复制为MySQL搭建一套主从复制架构 3.GTID为MySQL搭建一套主从复制架构 4.并行复制降低主从同步延迟或强制读主库 1.异步复制为MySQL搭建一套主从复制架构 (1)MySQL主从复制的原理 (2)搭建主从复制架构的配置 (1
阅读全文
摘要:大纲 1.禁止或改写SQL避免自动半连接优化 2.指定索引避免按聚簇索引全表扫描大表 3.按聚簇索引扫描小表减少回表次数 4.避免产生长事务长时间执行 1.禁止或改写SQL避免自动半连接优化 (1)业务场景介绍 (2)SQL性能问题分析 (3)SQL性能调优 (1)业务场景介绍 某互联网公司的用户量
阅读全文
摘要:大纲 1.什么是执行计划 2.执行计划包含哪些内容 3.SQL语句和执行计划的总结 4.SQL语句使用多个二级索引 5.多表关联的SQL语句如何执行 6.全表扫描执行计划的成本计算方法 7.索引的成本计算方法 8.MySQL如何优化执行计划 9.explain的参数说明 1.什么是执行计划 (1)什
阅读全文
摘要:大纲 1.磁盘数据页的存储结构 2.没有索引数据库如何搜索数据 3.在表中插入数据时如何进行页分裂 4.如何设计主键索引及如何根据主键索引查询 5.索引的物理存储结构 6.更新数据时自动维护的聚簇索引是什么 7.针对主键之外的字段建立的二级索引 8.插入数据时如何维护不同索引的B+树 9.完整的My
阅读全文
摘要:大纲 1.简单总结增删改SQL语句的实现原理 2.多个事务同时执行的场景遇到的问题 3.多个事务并发更新或查询时可能出现的问题 4.SQL标准中对事务的4个隔离级别 5.MySQL是如何支持4种事务隔离级别的 6.Spring事务注解了如何设置隔离级别 7.uodo log多版本链介绍 8.基于un
阅读全文
摘要:大纲 1.redo日志对事务提交后数据不丢失的意义 2.redo日志文件的构成 3.redo日志会写入到Redo Log Blcok中 4.redo日志如何写入到Redo Log Blcok中 5.Redo Log Buffer解析 6.Redo Log Buffer的刷盘时机 7.undo log
阅读全文