mysql
文章平均质量分 83
zcjrun
这个作者很懒,什么都没留下…
展开
-
MySQL源码分析(3):配置文件详解
<br /><br />配置文件详解关于配置文件存放位置和优先级<br />在一次部署中,我们发现MySQL没有按照配置文件中的innodb_data_path选项创建文件,查找后发现这台机器上有多个配置文件:/etc/my.cnf和/etc/mysql/my.cnf,而MySQL会优先读取/etc/mysql/my.cnf。当出现多个配置文件时,其优先级是如何确定的?源码面前,了无秘密。<br />用kDbg跟踪调试发现MySQL对系统中各处配置文件的优先级处理如下:<br />mysys/default转载 2011-03-25 08:18:00 · 2413 阅读 · 0 评论 -
MySQL源码分析(1):主要模块及数据流
<br /><br />主要模块及数据流<br />经过多年的发展,mysql的主要模块已经稳定,基本不会有大的修改。本文将对MySQL的整体架构及重要目录进行讲述。源码结构(MySQL-5.5.0-m2)BUILD: 内含在各个平台、各种编译器下进行编译的脚本。如compile-pentium-debug表示在pentium架构上进行编译的脚本。Client: 客户端工具,如mysql, mysqladmin之类。Cmd-line-utils: readline, libedit工具。Config: 给a转载 2011-03-24 20:10:00 · 2255 阅读 · 0 评论 -
MySQL源码分析(2):Mysql中的内存分配相关
<br /><br />Mysql中的内存分配相关涉及到内存的配置参数这些参数可以分成两部分,分别对应MySQL中的两个层次:服务器层和存储引擎层。<br /> MySQL服务器相关:<br />每个连接到MySQL服务器的线程都需要有自己的缓冲,默认为其分配256K。事务开始之后,则需要增加更多的空间。运行较小的查询可能仅给指定的线程增加少量的内存消耗,例如存储查询语句的空间等。但如果对数据表做复杂的操作比较复杂,例如排序则需要使用临时表,此时会分配大约read_buffer_size,sort_bu转载 2011-03-24 20:11:00 · 2222 阅读 · 0 评论 -
MySQL源码分析(5):Innodb缓存系统
<br />Innodb缓存系统buffer操作根据tbl_test文件的space id和offset检查buffer pool中是否已经有缓存,若有则直接读取该page信息,并返回结果;若没有缓存则会先分配一个空白的page,然后读取磁盘上的数据加载进内存,并将结果返回。当Sql级别命令执行到Innodb的buffer层时就对应到在buf_pool上的对buffer block的读写等操作。例如客户端输入以下查询语句:select * from tbl_test;层层解析执行转载 2011-03-25 08:20:00 · 2490 阅读 · 0 评论 -
MySQL源码分析(4):InnoDB主要数据结构及调用流程
<br /><br />InnoDB主要数据结构及调用流程InnoDB是MySQL中常用的数据引擎。本文将从源码级别对InnoDB重点数据结构和调用流程进行分析。<br /> 主要数据结构(buf0buf.h)<br /> Buf_pool<br /><br />Buf_pool是整个buffer系统中核心数据结构,数据库中所有的操作都会在这缓冲层得到体现。我们可以在配置文件中(InnoDB_buffer_pool_size)指定该缓冲池的大小。<br />Buffer pool中又包含了转载 2011-03-25 08:19:00 · 3343 阅读 · 0 评论