
MySQL
文章平均质量分 58
舒适边缘
坚定目标是做最好的准备,降低预期是做最坏的打算
展开
-
局域网内MySQL连接慢的解决办法
禁止mysql做域名解析。原创 2023-12-19 11:28:00 · 682 阅读 · 0 评论 -
MySQL基础架构
一、基础架构 MySQL逻辑上可以分为Server层和存储引擎层 Server层分为: 连接器:通过TCP和服务器建立连接,进行身份认证和权限查询,后续的操作都根据权限进行 查询缓存:将查询语句缓存,key为语句,value为值,当查询语句命中时直接返回值,但是数据进行更新时,缓存会被清空,MySQL8.0以后取消查询缓存 解析器:没有命中缓存则进行词法分析和语法分析,词法分析会提前sql语句的关键词,如select,表名等。语法分析会判断sql语句是否符合规范,不符合返回错误 优化器:在词法分原创 2023-12-05 10:42:09 · 368 阅读 · 0 评论 -
MySQL之InnoDB
一、InnoDB体系架构 后台线程:后台线程负责刷新缓存中的数据,保证缓存的数据是最新的,将缓存的数据刷入磁盘,同时保证数据库发生异常时恢复正常工作。后台线程分为: Master Thread:将缓存的数据刷入磁盘,像脏页的刷入,插入缓存的合并,undo页的回收 IO Thread:InnDB存在大量的IO操作,这类线程主要用于IO的请求回调 Purge Thread:当事物执行完毕,有些undo页不需要使用,可通过Purge Thread线程回收,降低Master Thread线程的压力 Pag原创 2023-12-05 10:41:39 · 369 阅读 · 0 评论 -
MySQL主从复制
主从复制默认是异步操作,有主库通知从库,如果采用从库轮询那么效率会很低,主库二进制日志有事件产生唤醒dump 线程就能马上通知从库,效率高的多。写压力大,导致从库的SQL线程来不及消化那么多的写数据。原创 2023-12-05 10:40:28 · 341 阅读 · 0 评论 -
MySQL事物以及MVCC
MVCC是多版本并发控制,一般解决读写冲突,我们采用加锁的形式,MVCC不需要加锁解决读写冲突。行id(主键存在时,不会创建),事物id回滚指针当我们的隔离级别为RR(可重复读),每开启一个事物,系统会分配一个事物id,当事物第一次调用select语句时会生成ReadView快照。事物id列表:记录当前未提交的事物id,顺序列表高水位:分配给下一个事物的id低水位:对应事物id列表中最小的事物的id创建该列表的事物id当访问的事物id小于低水位时,说明该事物已经提交可以访问。原创 2023-12-05 10:39:18 · 872 阅读 · 0 评论