07 2014 档案

摘要:测试的用例中,因为limit的大小不同,而产生了完全不同的执行计划:1. 测试case: create table t1 ( f1 int(11) not null, f2 int(11) not null, f3 int(11) not null, f4 tinyint(1) not n... 阅读全文
posted @ 2014-07-30 16:39 xpchild 阅读(948) 评论(0) 推荐(1)
摘要:本篇先介绍 下Innodb表空间,文件相关的内存数据结构。1. 数据结构Innodb的tablespace和文件的关系,是一对多的关系,先来看三个结构体1. fil_system_struct: 表示Innodb的表空间内存cache,innodb一共包括两类tablespace,即 #defi... 阅读全文
posted @ 2014-07-29 22:47 xpchild 阅读(922) 评论(0) 推荐(0)
摘要:同步机制Innodb实现了不依赖于平台的mutex,rwlock。1. 全局变量 对于mutex, rwlock,都有一个全局链表。1. mutex全局链表:mutex_list2. rwlock全局链表:rw_lock_list 在create创建mutex 或者rwlock的时候,加入链表。... 阅读全文
posted @ 2014-07-28 21:07 xpchild 阅读(658) 评论(0) 推荐(0)
摘要:上一篇blog介绍了因为sql查询information_schema表而导致内存暴涨的case。今天顺便做了一个thd内存的监控:先来介绍下MySQL的内存: 1. 线程内内存:thd->mem_root, 线程在执行sql的过程中,申请的内存从thd->mem_root进行分配,在sql结束的... 阅读全文
posted @ 2014-07-24 20:01 xpchild 阅读(1332) 评论(0) 推荐(0)
摘要:case:下面的一条sql语句,导致mysql实例内存暴涨: select * from tables where table_name not in(select table_name from partitions group by table_name having count(*)>1 )... 阅读全文
posted @ 2014-07-23 19:25 xpchild 阅读(1533) 评论(0) 推荐(0)
摘要:问题:1. MySQL对查询的结果集如果返回,一次性还是每条?2. 客户端如何接收结果集?1. 对于有返回结果集的查询,server端和client端交互的数据包由以下组成: p1:meta data packet p2:rows packetpn-1: rows packet pn:EOF or ... 阅读全文
posted @ 2014-07-21 20:02 xpchild 阅读(1783) 评论(0) 推荐(0)
摘要:因为mysql的主从复制是逻辑复制,所以slave在apply relay log的过程中,经常会遇到错误,而参数sql_slave_skip_counter可以设置跳过多少个event,让slave sql继续。因为mysql的binlog是由event组成的。一个transaction是一个... 阅读全文
posted @ 2014-07-10 17:22 xpchild 阅读(1346) 评论(0) 推荐(0)
摘要:运维的时候,经常遇到auto_increment的疑惑:机器异常crash,重启后id回退的问题性能考虑,每次获取肯定不会持久化,内存中取值,statement复制如何保证主备一致id的取值受binlog的保护吗1. auto_increment相关的参数控制 1.1 innodb_autoinc_... 阅读全文
posted @ 2014-07-05 00:41 xpchild 阅读(1949) 评论(0) 推荐(0)
摘要:事务是关系型数据库的核心,贯穿整个源代码,先来瞅瞅相关的数据结构,揭开面纱:server层和innodb引擎层分别对应了不同的数据结构,但相互关联:server层需要引擎注册事务,以便server层能够引用。innodb层需要维持事务的状态,以及事务的状态转换的具体实现。1. 相关数据结构下面用一个... 阅读全文
posted @ 2014-07-02 23:30 xpchild 阅读(876) 评论(0) 推荐(0)
摘要:测试了两个case,属于之前blog的遗留问题: innodb如何加载数据字典 flush tables都做了什么操作先来看下innodb加载数据字典: 首次使用:select * from tt;1. 创建handler对象函数调用栈: open_binary_frm ... 阅读全文
posted @ 2014-07-01 15:48 xpchild 阅读(661) 评论(0) 推荐(0)