MySQL解析(0)---简介

本人打算在blog中写一个解析MySQL源代码的系列文章,如果时间允许的话。

首先说明一下。虽然MySQL 能够在多个操作平台下运行,但本系列基本上只注重於Linux平台。也许偶尔提及一下其他操作平台,如Windows。本系列所针对的MySQL版本为MySQL 5.0。

另外,本系列注重於解析MySQL。至于如何编译运行MySQL,大家可以参考manual相应部分。为方便解析MySQL,可能需要运行MySQL,为避免干扰主机可能已经运行的mysqld,建议大家将这里运行的MySQL的端口设置为3306之外的端口,如3321等;另外,将数据目录置于非系统缺省目录。这些都可以通过my.cnf设置。

1)MySQL总体结构

MySQL是普通的client/server架构。具体的说,有一个daemon运行在server端;client端通过TCP/IP或socket联机daemon,向daemon发送query 命令。

Daemon就是mysqld;在Windows, mysqld可以作为一个服务运行,具体如何设置可以参考mysql manual。另外,MySQL提供了一个常用的client---mysql。

这里先简单说一说mysqld。mysqld就总体来说,是一个while循环,在这个循环中,mysqld等待在select函数上。在正常情况下,select函数在有新来客户联机时返回。当select函数正常返回后,mysqld创建一个新的线程来处理新来的client所发出的查询命令;主线程由于在while循环中,又回到select的等待状态。

2)MySQL的代码结构

这里只说几个主要的子目录。其他的将在後文一一提及。

include(头文件)

sql(mysqld的大部分源代码,包括查询编译,查询处理,表的处理等。另外,mysqld所挂带的存储引擎,myisam,innodb,bdb等的接口文件也在这里。编译完成后mysqld位于此地)

libmysqld(mysqld所用库的源文件)

sql-common(mysqld和下面将说到的client所共用的一些源文件)

client(client端应用程序源文件,如mysql,mysqladmin)

mysys(一些基本的工具例程)

myisam,innobase,bdb(存储引擎的源文件)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值