mysql
talen_hx296
80后老码农,在技术的海洋里,慢慢进行.
主要在JAVA和golang,大数据和云原生领域深耕,架构方面工作
16年一线研发经验,3年架构经验,曾任职世界百强企业IBM资深工程师
展开
-
取数和发送数据流程-mysql45讲-打卡活动
MySQL取数和发送数据流程是”边读边发的“,具体流程如下:获取一行,写到 net_buffer 中(由参数 net_buffer_length设置,默认是 16k) 重复获取行,直到 net_buffer 写满,调用网络接口发出去。 如果发送成功,就清空 net_buffer,然后继续取下一行,并写入 net_buffer。 如果发送函数返回 EAGAIN 或 WSAEWOULDBLOCK,就表示本地网络栈(socket send buffer)写满了,进入等待。直到网络栈重新可写,再继续发..原创 2021-10-25 09:57:51 · 174 阅读 · 0 评论 -
undo log-mysql45讲-打卡活动
类型为TRX_UNDO_INSERT_REC的日志 结构:end of record,undo type,undo no,table id,主键各列信息(每个列占用的存储空间大小和真实值),startof record 类型为TRX_UNDO_DEL_MARK_REC的undo日志,结构为:start of record,索引列各列信息,len of index_col_info,主键各列信息,roll_pointer(旧记录的roll_pointer),trx_id(旧记录的trx id),info原创 2021-10-14 12:58:50 · 125 阅读 · 0 评论 -
redo日志-mysql45讲-打卡活动
redo log 文件格式type:日志类型space ID:表空间IDpage number:页号data:日志内容日志类型MLOG_1BYTEMLOG_2BYTEMLOG_4BYTEMLOG_8BYTEMLOG_WRITE_STRINGMLOG_REC_INSERTMLOG_COMP_REC_INSERTMLOG_COMP_PAGE_CREATEMLOG_COMP_PAGE_REC_DELETEMLOG_COMP_LIST_START_DELETE原创 2021-10-13 12:52:32 · 114 阅读 · 0 评论 -
Buffer pool-mysql45讲-打卡活动
默认为128M,可以通过设置innodb_buffer_pool_size启动项,单位为字节,最小值为5MB,当设置小于5MB时,会变为5MB buffer pool为连续的内存空间,划分为若干个页面,页面默认的大小为16KB 管理buffer pool页面,会创建控制信息,信息包含表空间编号、页号、缓冲页在buffer pool中的地址、链表节点信息等 buffer pool 对应的内存空间分为若干个控制块、碎片、若干个缓冲页 空间链表(free链表)管理,会把每一个缓冲页对应的控制块都会...原创 2021-10-12 19:17:08 · 141 阅读 · 0 评论 -
执行计划extra-mysql45讲-打卡活动
执行计划中,有个列是extra,用来说明一些额外信息No tables used Impossible WHERE,查询语句的where子句永远为false时,将会提示该额外信息 No matching min/max row,当查询列表外有min或max聚集函数,但没有记录符合where查询条件时,将会提示该额外信息 Using index Using index condiition Using where Using join buffer Using intersect(...)、原创 2021-10-12 15:57:03 · 125 阅读 · 0 评论 -
mysql锁的内存结构
InnoDB存储引擎中的锁内存结构:锁所在的事务信息 索引信息 表锁/行锁信息,如果是表锁,则结构为表信息、其它信息,如果是行锁,则为spaceID(记录所在的表空间)、Page Number(记录所在的页号)、n_bits(一条记录对应着一个比特) type_mode,一个32比特的数,分为loke_mode(锁模式)、lock_type(锁类型,LOCK_TABLE表示表锁,LOCK_REC表示行锁)、rec_lock_type(行锁的具体类型,LOCK_ORIDNARY表示next-key锁原创 2021-10-12 13:00:14 · 353 阅读 · 0 评论 -
知识7-查询优化
一、查询优化:重写操作,移除不必要的括号,常量传递,移除没用的条件,表达式计算,having子句和where子句的合并,常量表检查执行策略1、Table pullout(子查询中的表上拉)2、Duplicate Weedout(重复值消除)3、LooseScan(松散扫描)4、Semi-join Materialization(半连接物化)5、FirstMatch(首次匹配)二、Explain语句输出中的各个列的作用1、id,每个select关键这了对应的惟一id2、原创 2021-10-09 14:40:48 · 149 阅读 · 0 评论 -
知识6-访问方法(access method)
1、const,通过主键或者惟一二级索引列来定位一条记录的访问2、ref,查询条件为二级索引列与常数进行等值比较,形成的扫描区间为单点扫描区间3、ref_or_null4、index 全部查询二级索引的,不需要回表5、range,范围查询6、all,全表扫描7、索引合并(index_merge)Intersection索引合并union索引合并sort-Union索引合并...原创 2021-09-30 18:29:32 · 419 阅读 · 0 评论 -
知识5-Mysql的数据目录
1、表空间系统表空间、独立表空间、通用表空间、undo表空间、临时表空间2、MYSQL系统数据库mysql:存储用户账号和权限信息,事件的定义信息,日志信息information_schema:存储元数据,表、视图、触发器、列、索引的描述性信息performance_schema:存储mysql运行过程中的一些状态信息sys:主要是通过视图的形式,把information_schema和performance_schema整合起来,可以查询到mysql服务器的性能信息3、MyIS原创 2021-09-27 17:07:29 · 178 阅读 · 0 评论 -
知识4-索引
1、索引结构B+树结构,聚集索引叶子节点存储数据,非聚集索引叶子节点存储主键。索引非节点都存储索引列的值,索引节点都会存前后指针2、索引类型全文索引、聚簇索引、非聚簇索引和hash索引,复合索引就是为了节省索引空间,把查询条件的字段组合成一个索引3、覆盖索引、索引下推覆盖索引的意思是查询的字段,都在索引中,不需要进行回表查询数据索引下推的意思是索引的区分度不够,需要用查询条件的下一个字段索引进行查询,比如性别字段之类的4、数据页和索引页mysql存储数据页和索引页,都是一样的原创 2021-09-26 14:58:21 · 67 阅读 · 0 评论 -
知识3-事务隔离级别
数据库ACIDA 原子性(Atomicity):mysql中用了锁机制来保证了原子性,有悲观锁和乐观锁,悲观锁是锁了整个表或库,锁库时,一般是做数据迁移操作时,而且一般是锁从库,乐观锁的实现分两种,一种是加for update 锁住了行,还有一种是加了版本号来实现C 一致性(Consistency):mysql用了事务回滚机制,在行记录里,记录了回滚指针和事务id(trx_id),利用了日志文件来进行回滚(undo log)I 隔离性(Isolation):设置了事务隔离级别,来隔离数据的可见性,原创 2021-09-24 10:31:09 · 90 阅读 · 0 评论 -
知识点2-mysql执行流程
客户端提交更新SQL到server层 查询数据,从存储引擎层中,刷新到缓存池buffer pool 旧数据写入undo log日志文件中 更新数据到缓存池中 写redo log日志到redo log 缓存池中redo log buffer 准备提交事务,将redo log buffer的数据,刷新到redo log文件磁盘中 如果开启了binlog,则写binlog文件中 将commmit标记到redolog日志中 返回给客户端,已经提交事务 缓存池buffer pool的数据,定时异步的原创 2021-09-23 13:34:49 · 53 阅读 · 0 评论 -
知识点1-mysql架构
mysql整个架构分两大层,server层和存储引擎层server层分为:连接器、语法分析器、优化器、执行器,而查询缓存,这个需要开启,则8.0开始已经废除这一功能 存储引擎层是以插件的形式,InnoDB、MyISAM、Memory 等多个存储引擎连接器:负责与客户端的连接,可以通过命令show processlist,查看连接列表,客户端如果太长时间没动静,连接器就会自动将它断开。这个时间是由参数 wait_timeout 控制的,默认值是 8 小时,如果用户名或密码不对,你就会收到一个"Acce原创 2021-09-22 15:46:35 · 59 阅读 · 0 评论 -
mysql索引类型简述脑图
原创 2021-09-14 10:30:54 · 84 阅读 · 0 评论 -
mysql数据页结构脑图
原创 2021-09-09 18:29:29 · 75 阅读 · 0 评论 -
Mybatis知识梳理-1
原创 2021-08-12 09:45:14 · 75 阅读 · 0 评论 -
MySQL知识梳理-2
原创 2021-08-12 09:44:24 · 101 阅读 · 0 评论 -
MySQL知识梳理
原创 2021-08-11 13:54:58 · 77 阅读 · 0 评论