天天看點

Mysql源碼學習——源碼目錄結構

目錄清單

目錄名 注釋

Bdb 伯克利DB表引擎

BUILD 建構工程的腳本

Client 用戶端

Cmd-line-utils 指令行工具

Config 建構工程所需的一些檔案

Dbug Fred Fish的調試庫

Docs 文檔檔案夾

Extra 一些相對獨立的次要的工具

Heap HEAP表引擎

Include 頭檔案

Innobase INNODB表引擎

Libmysql 動态庫

Libmysql_r 為了建構線程安全的libmysql庫

Libmysqld 伺服器作為一個嵌入式的庫

Man 使用者手冊

Myisam MyISAM表引擎

Myisammrg MyISAM Merge表引擎

Mysql-test mysqld的測試單元

Mysys MySQL的系統庫

Ndb Mysql叢集

Netware Mysql網絡版本相關檔案

NEW-RPM 部署時存放RPM

Os2 針對OS/2作業系統的底層函數

Pstack 進行堆棧

Regex 正規表達式庫(包括擴充的正規表達式函數)

SCCS 源碼控制系統(不是源碼的一部分)

Scripts 批量SQL腳本,如初始化庫腳本

Server-tools 管理工具

Sql 處理SQL指令;Mysql的核心

Sql-bench Mysql的标準檢查程式

Sql-common 一些sql檔案夾相關的C檔案

SSL 安全套接字層

Strings 字元串函數庫

Support-files 用于在不同系統上建構Mysql的檔案

Tests 包含Perl和C的測試

Tools

Vio 虛拟I/O庫

Zlib 資料壓縮庫,用于WINDOWS

下面給出幾個比較重要的目錄清單:

檔案清單

目錄名 檔案名 注釋

Client

get_password.c 指令行輸入密碼

Mysql.cc MySQL指令行工具

Mysqladmin.cc 資料庫weihu

Mysqldump.c 将表的内容以SQL語句輸出,即邏輯備份

Mysqlimport.c 文本檔案資料導入表中

Mysqlmanager-pwgen.c 密碼生成

Mysqlshow.c 顯示資料庫,表和列

Mysqltest.c 被mysql測試單元使用的測試程式

----------------------------------------------------------------------------------------------------------------

MYSYS

Array.c 動态數組

Charset.c 動态字元集,預設字元集

Charset-def.c 包含用戶端使用的字元集

Checksum.c 為記憶體塊計算校驗和,用于pack_isam

Default.c 從*.cnf和*.ini檔案中查找預設配置項

Default_modify.c 編輯可選項

Errors.c 英文錯誤文本

Hash.c hash查找、比較、釋放函數

List.c 雙向連結清單

Make-conf.c 建立*.conf檔案

Md5.c MD5算法

Mf_brkhant.c

Mf_cache.c 打開臨時檔案,并使用io_cache進行緩存

Mf_driname.c 解析,轉換路徑名

Mf_fn_ext.c 擷取檔案名的字尾

Mf_format.c 格式化檔案名

Mf_getdate 擷取日期:

yyyy-mm-dd hh:mm:ss format

mf_iocache.c 緩存I/O

mf_iocaches.c 多鍵值緩存

mf_loadpath.c 擷取全路徑名

mf_pack.c 建立需要的壓縮/非壓縮檔案名

mf_path.c 決定是否程式可以找到檔案

mf_qsort.c 快速排序

mf_qsort2.c 快速排序2

mf_radix.c 基數排序

mf_soundex.c 探測算法(EDN NOV 14, 1985)

mf_strip.c 去字元串結尾空格

mf_tempdir.c 臨時檔案夾的建立、查找、删除

mf_tempfile.c 臨時檔案的建立

mf_unixpath.c 轉化檔案名為UNIX風格

mf_util.c 常用函數

mf_wcomp.c 使用通配符比較

mf_wfile.c 通配符查找檔案

mulalloc.c 同時配置設定多個指針

my_access.c 檢查檔案或路徑是否合法

my_aes.c AES加密算法

my_alarm.c 警報相關

my_alloc.c 同時配置設定臨時結果集緩存

my_append.c 一個檔案到另一個

my_bit.c 除法使用,位運算

my_bitmap.c 位圖

my_chsize.c 填充或截斷一個檔案

my_clock.c 時鐘函數

my_compress.c 壓縮

my_copy.c 拷貝檔案

my_crc32.c

my_create.c 建立檔案

my_delete.c 删除檔案

my_div.c 擷取檔案名

my_dup.c 打開複制檔案

my_error.c 錯誤碼

my_file.c

my_fopen.c 打開檔案

my_fstream.c 檔案流讀/寫

my_gethostbyname.c 擷取主機名

my_gethwaddr.c 擷取硬體位址

my_getopt.c 查找生效的選項

my_getsystime.c time of day

my_getwd.c 擷取工作目錄

my_handler.c

my_init.c 初始化變量和函數

my_largepage.c 擷取OS的分頁大小

my_lib.c 比較/轉化目錄名和檔案名

my_lock.c 鎖住檔案

my_lockmem.c 配置設定一塊被鎖住的記憶體

my_lread.c 讀取檔案到記憶體

my_lwrite.c 記憶體寫入檔案

my_malloc.c 配置設定記憶體

my_messnc.c 标準輸出上輸出消息

my_mkdir.c 建立目錄

my_mmap.c 記憶體映射

my_net.c net函數

my_netware.c Mysql網絡版 

my_once.c 一次配置設定,永不free

my_open.c 打開一個檔案

my_os2cond.c 作業系統cond的簡單實作

my_os2dirsrch.c 模拟Win32目錄查詢

my_os2dlfcn.c 模拟UNIX動态裝載

my_os2file64.c 檔案64位設定

my_os2mutex.c 互斥量

my_os2thread.c 線程

my_os2tls.c 線程本地存儲

my_port.c

my_pthread.c 線程的封裝

my_quick.c 讀/寫

my_read.c 從檔案讀bytes

my_realloc.c 重新配置設定記憶體

my_redel.c 重命名和删除檔案

my_seek.c 查找

my_semaphore.c 信号量

my_sleep.c 睡眠等待

my_static.c 靜态變量

my_symlink.c 讀取符号連結

my_symlink2.c 2

my_sync.c 同步記憶體和檔案

my_thr_init.c 初始化/配置設定線程變量

my_wincond.c

my_windac.c WINDOWS NT/2000自主通路控制

my_winsem.c 模拟線程

my_winthread.c 模拟線程

my_write.c 寫檔案

ptr_cmp.c 位元組流比較函數

queue,c 優先級隊列

raid2.c 支援RAID

rijndael.c AES加密算法

safemalloc.c 安全的malloc

sha1.c sha1哈希加密算法

string.c 字元串函數

testhash.c 測試哈希函數(獨立程式)

test_charset 測試字元集(獨立)

thr_lock.c 讀寫鎖

thr_mutex.c 互斥量

thr_rwlock.c 同步讀寫鎖

tree.c 二叉樹

typelib.c 字元串中比對字串

SQL 

derror.cc 讀取獨立于語言的資訊檔案

Des_key_file.cc 加載DES密鑰

Discover.cc frm檔案的查找

Field.cc 存儲列資訊

Filed_conv.cc 拷貝字段資訊

Filesort.cc 結果集排序(記憶體或臨時檔案)

Frm_crypt.cc get_crypt_from_frm

Gen_lex_hash.cc 查找、排列SQL關鍵字

Gstream.c GIS

Handler.cc 函數句柄

Hash_filo.cc 靜态大小HASH表,

以FIFO方式存儲主機名、IP表

Ha_berkeley.cc BDB的句柄

Ha_innodb.cc INNODB句柄

Hostname.cc 根據IP擷取hostname

Init.cc 初始化和unireg相關的函數

item.cc  item函數

item_buff.cc item的儲存和比較的緩存

item_cmpfunc.cc 比較函數的定義

item_create.cc 建立一個item

item_func.cc 數字函數

item_geofunc.cc 集合函數

item_row.cc 記錄項比較

item_strfunc.cc 字元串函數

item_subselect.cc 子查詢

item_sum.cc 集函數(SUM,AVG...)

item_timefunc.cc 時間日期函數

item_uniq.cc  空檔案

Key.cc 建立KEY以及比較

Lock.cc 鎖

Log.cc 日志

log_event.cc 日志事件

Matherr.c 處理溢出

mf_iocache.cc 順序讀寫的緩存

Mysqld.cc main,處理信号和連接配接

mf_decimal.cc decimal類型

my_lock.c

net_serv.cc socket資料包的解析

nt_servc.cc NT服務

opt_range.cc KEY排序

opt_sum.cc 集函數優化

parse_file.cc frm解析

Password.c 密碼檢查

Procedure.cc

Protocol.cc 資料包打包發送給用戶端

protocol_cursor.cc 存儲返送資料

Records.cc 讀取記錄集

repl_failsafe.cc

set_var.cc 設定、讀取使用者變量

Slave.cc slave節點

Sp.cc 存儲過程和存儲函數

sp_cache.cc

sp_head.cc

sp_pcontext.cc

sp_rcontext.cc

Spatial.cc 集合函數,點線面

Sql_acl.cc ACL

sql_analyse.cc

sql_base.cc 基礎函數

sql_cache.cc 查詢緩存

sql_client.cc

sql_crypt.cc 加解密

sql_db.cc 建立、删除DB

sql_delete.cc DELETE語句

sql_derived.cc 派生表

sql_do.cc DO

sql_error.cc  錯誤和警告

sql_handler.cc

sql_help.cc HELP

sql_insert.cc INSERT

sql_lex.cc 詞法分析

sql_list.cc

sql_load.cc LOAD DATA 語句

sql_manager.cc 維護工作

sql_map.cc  記憶體映射

sql_olap.cc

sql_parse.cc 解析語句

sql_prepare.cc

sql_rename.cc 重命名table名

sql_repl.cc 複制

sql_select.cc SELECT和JOIN優化

sql_show.cc SHOW

sql_state.c 錯誤号和狀态的映射

sql_string.cc

sql_table.cc DROP TABLE、ALTER TABLE

sql_trigger.cc 觸發器

sql_udf.cc 使用者自定義函數

sql_union.cc UNION操作符

sql_update.cc UPDATE

sql_view.cc 視圖

Stacktrace.c 顯示堆棧(LINUX/INTEL ONLY)

Strfunc.cc

Table.cc 表中繼資料擷取(FRM)

thr_malloc.cc

Time.cc

Uniques.cc 副本的快速删除

Unireg.cc 建立一個FRM

更多内容請參考:

<a href="http://forge.mysql.com/wiki/MySQL_Internals_Files_In_MySQL_Sources#The_sql_Directory">http://forge.mysql.com/wiki/MySQL_Internals_Files_In_MySQL_Sources#The_sql_Directory</a>

繼續閱讀