Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
重用的undo日志 (3)—mysql进阶(六十六)
前面说了undo日志的文件格式 第一页和后面的页是不同的 填入undo日志之前 会先把undo page header属性填满 还有undo segment header undo log header List base node存在un
mysql进阶
mysql
数据库
Select type&partitions (2)—mysql执行计划(四十八)
前面说了explain的table是表名 显示在前面的代表驱动表 正常select会出现不同的id 但如果子查询本来是两个select 但被优化成连接查询 就会导致是相同的id union查询会出现临时表 id为null 这个临时表作用于去
mysql进阶
mysql
sql
数据库
访问方法access method---单表访问方法(三十六)
上篇文章回忆了innodDB的独立表空间和系统表空间的结构 因为需要梳理的知识点太多 所以额外用一篇 独立表空间 系统表空间总结 innoDB表空间 三十五 单表的访问方法 对我们开发来说 mysql就是个软件 用sql查询我们需要的数据
mysql进阶
mysql
Java
整体结构&InnoDB数据字典(1) --系统表空间结构(三十三)
前面说了xdes 类型页面 第一页的extent0里面的xdes页面叫做fsp 因为里面还存着表空间的数据file space header 这里面主要存着xdes entry几个链表的基点 和inode entry链表的基点 后面的每个组
mysql进阶
mysql
数据库
Java
undo日志insert,update,delete (1)—mysql进阶(六十四)
前面说了redo日志为了保证系统宕机的情况下 能够恢复数据 恢复数据是在以checkpoint lsn为起始位子来恢复 在该值之前的都是已经持久化到磁盘的 可以为了提升效率而放弃 而之后的数据 也可能在checkpoint之后 被后台异步运
mysql进阶
mysql
数据库
事务隔离级别与MVCC (1)—mysql进阶(六十七)
前面我们说了undo日志写入undo页面链表时 先需要把undo page header undo segment header undo log header等 每个事务都会有相应的undo链表 如果只存储一点数据不是很浪费吗 于是有了可
mysql进阶
mysql
数据库
transaction (1)—mysql进阶(五十七)
前面说了当设置的buffer pool size在1个G内 则不管如何设置 buffer pool instances都是一个 当在1个G以上 mysql才支持多个instances设置 每个都有自己独立的链表 多线程的情况下互不干扰运行
mysql进阶
mysql
数据库
sql
索引合并Intersection、union (3)--单表访问方法(三十八)
上篇文章我们说了 使用索引的注意事项 前面我们总结了查询数据库的方式有const ref ref or null range index all 而使用时候需要注意 当where语句后面全是索引查询 当where语句后面跟着非索引的时候 当
mysql进阶
sql
mysql
Java
mysql如何将两个字段的查询结果拼接
sql函数 CONCAT str1 str2 函数 将查询出的字段拼接无分隔符 str1 字段一 str2 字段二 CONCAT WS separator str1 str2 函数 将查询出的字段拼接可以加分隔符 separator 分隔符
mysql进阶
mysql
sql
innoDB数据收集方式—永久性&非永久性(四十三)
上篇文章说了连接查询的成本 主要由驱动表的扇出值和被驱动表的查询方法决定 而成本这些都是可以在 cost 表查看的 因为分为server和engine表 server不管理数据成本 里面包含连接管理 查询缓存 sql解码 sql优化 eng
mysql进阶
sql
数据库
mysql
索引-mysql详解(三)
上篇文章说了 mysql可以指定行格式 compact dynamic 他结构有变长字段长度列表 null值 头部和真实数据存储 compact真实数据会存一定量的页 后面指向页的页码 dynamic全部存的页码 char会根据字符集来变换
后端
mysql进阶
mysql
链表
数据结构
Optimizer trance—mysql进阶(五十三)
前面介绍了 如果加个format JOSN会把数据以json的格式返回 如果想看查询的额外信息 还可以在explain之后加个show warning查看 其中如果code为1003 则代表message里的内容是mysql优化器优化之后的
mysql进阶
mysql
sql
数据库
二级索引查询注意事项(2)--单表访问方法(三十七)
前面说了explain参数的type代表访问数据库的方法 如果用主键和唯一二级索引 测试最快的const方法 若用普通索引 则是ref 还有ref or null range是代表区间查询 若用index则代表查询联合索引的非最左边索引 最
mysql进阶
sql
数据库
Java
Mysql在哪些场景会flush脏页?
我们在日常使用sql中 查询数据库反映的时间过长 这时候可能是flush脏页导致的 而脏页会什么时候触发呢 当查询的数量太多 每次全量查询都会淘汰掉脏页从而触发磁盘的I O操作户导致查询时间过长 当innoDB的redo log满了后 这时
mysql进阶
mysql
数据库
服务器