91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL源代碼目錄有哪些

發布時間:2021-11-01 11:43:52 來源:億速云 閱讀:186 作者:小新 欄目:MySQL數據庫

這篇文章主要介紹了MySQL源代碼目錄有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1、源代碼目錄介紹:

1、BUILD
    BUILD目錄是編譯、安裝腳本目錄,絕大部分以compile-開頭,其中的SETUP.sh腳本為C和C++編譯器設置了優化選項。
2、client
    client目錄包括常用命令和客戶端工具代碼,這些源代碼文件中包括密碼確認功能get_password.c、SSL連接可行性檢查、MySQL客戶端mysql.cc、mysqladmin工具和mysqladmin用于服務器的運作mysqladmin.c、顯示數據庫及其表和列的mysqlshow.c等。
3、storage
    MySQL的各類存儲引擎代碼都在該目錄中,包括CVS存儲引擎(cvs目錄)、InnoDB存儲引擎、Federate等。存儲引擎是數據庫系統的核心,封裝了數據庫文件的操作,是數據庫系統是否強大最重要的因素。Mysql實現了一個抽象接口層,叫做 handler(sql/handler.h),其中定義了接口函數,比如:ha_open, ha_index_end, ha_create等等,存儲引擎需要實現這些接口才能被系統使用。這個接口定義超級復雜,有900多行 :-(,不過我們暫時知道它是干什么的就好了,沒必要深究每行代碼。對于具體每種引擎的特點,我推薦大家去看mysql的在線文檔: http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html   

應該能看到如下的目錄:  
* innobase, innodb的目錄,當前最流行的存儲引擎  
* myisam, 最早的Mysql存儲引擎,一直到innodb出現以前,使用最廣的引擎
* heap, 基于內存的存儲引擎  
* federated, 一個比較新的存儲引擎  
* example, csv,這幾個大家可以作為自己寫存儲引擎時的參考實現,比較容易讀懂


4、mysys
    mysys代表MySQL system library,是MySQL的庫函數文件。庫函數是一些預先編譯好的函數的集合,這些函數都是按照可再使用的原則編寫的。它們通常由一組互相關聯的用來完成某項常見的工作的函數構成,從本質上來說庫是一種可執行的二進制形式,可以被操作系統載入內存執行。在mysys目錄中,共有125個.c文件,且隨著版本的演化和新功能的加入,庫函數也在不斷的增大。
    其中包括用于快速排序的mf_qsort.c、用于臨時文件管理的mf_tempfile.c、定義在客戶端編譯時采用字符集類型的charset-def.c、字符集相關操作(字符集加載、初始化等)的charset.c。
    mysys是一個大雜燴,包含了各種各樣的功能庫文件,包括文件打開、數據讀寫、內存分配、OS/2系統特別優化、線程控制、權限控制、RaidTable、動態字符串處理、隊列算法、網絡傳輸協議、初始化函數、錯誤處理、平衡二叉樹算法、符號連接處理、唯一臨時文件名生成、hash函數、排序算法、壓縮傳輸協議等。


5、sql
    sql目錄出了包含mysqld.cc這一MySQL main函數(沒錯,這里就是數據庫主程序mysqld所在的地方,大部分的系統流程都發生在這里。)所在的文件外,還包括了各類SQL語句的解析/實現、線程、查詢解析與查詢優化器、存儲引擎接口(你還能看到sql_insert.cc, sql_update.cc, sql_select.cc,等等,分別實現了對應的SQL命令。后面我們還要經常提到這個目錄下的文件)。在storage下各存儲引擎目錄中,存在的是各類存儲引擎的實現代碼,而在sql/目錄下存放的是處理接口handler。handler類中存在很多虛函數,需要其子類進行實現
    如今在MySQL 5.1中,綜合文件hadler.cc和handler.h處理了所有不同種類存儲請求。各種SQL語句的執行代碼也可以在sql目錄中找到,這類文件常以sql開始對文件命名。MySQL將UNION和ROLLUP等操作看作內部函數。

大概有如下及部分:  
SQL解析器代碼: sql_lex.cc, sql_yacc.yy, sql_yacc.cc, sql_parse.cc等,實現了對SQL語句的解析操作。  
"handler"代碼: handle.cc, handler.h,定義了存儲引擎的接口。  
"item"代碼:item_func.cc, item_create.cc,定義了SQL解析后的各個部分。  
SQL語句執行代碼: sql_update.cc, sql_insert.cc sql_select.cc, sql_show.cc, sql_load.cc,執行SQL對應的語句。當你要看"SELECT ..."的執行的時候,直接到sql_select.cc去看就OK了。  
輔助代碼: net_serv.cc實現網絡操作  
還有其他很多代碼。


6、vio
    VIO意指Virtual I/O,主要用來處理各種網絡協議的IO。Virtual I/O使得各種模塊的網絡協議能夠無縫的調用I/O功能。MySQL網絡子系統將調用這里的方法。
7、regex
    regex為MySQL提供執行正則匹配函數REGEXP時的支持。
8、dbug
    使用with-debug參數編譯的MySQL會顯示dbug輸出,代碼中的所有.c和.cc文件均可調用這個庫。

2、安裝目錄介紹:

On Windows, the default installation directory is C:\mysql, which has the following subdirectories:

Directory

Contents of Directory

bin

Client programs and the mysqld server

data

Log files, databases

Docs

Documentation

examples

Example programs and scripts

include

Include (header) files

lib

Libraries

scripts

Utility scripts

share

Error message files

Installations created from Linux RPM distributions result in files under the following system directories:

Directory

Contents of Directory

/usr/bin

Client programs and scripts

/usr/sbin

The mysqld server

/var/lib/mysql

Log files, databases

/usr/share/doc/packages

Documentation

include/usr/include/mysql

Include (header) files

lib/usr/lib/mysql

Libraries

/usr/share/mysql

Error message and character set files

sql-bench/usr/share/sql-bench

Benchmarks

On Unix, a tar file binary distribution is installed by unpacking it at the installation location you choose (typically/usr/local/mysql) and creates the following directories in that location:

Directory

Contents of Directory

bin

Client programs and the mysqld server

data

Log files, databases

docs

Documentation, ChangeLog

include

Include (header) files

lib

Libraries

scripts

mysql_install_db

share/mysql

Error message files

sql-bench

Benchmarks

A source distribution is installed after you configure and compile it. By default, the installation step installs files under /usr/local, in the following subdirectories:

Directory

Contents of Directory

bin

Client programs and scripts

include/mysql

Include (header) files

info

Documentation in Info format

lib/mysql

Libraries

libexec

The mysqld server

share/mysql

Error message files

sql-bench

Benchmarks and crash-me test

var

Databases and log files

感謝你能夠認真閱讀完這篇文章,希望小編分享的“MySQL源代碼目錄有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

谷城县| 古交市| 曲沃县| 盘山县| 通州区| 那坡县| 锡林浩特市| 芦溪县| 六枝特区| 南阳市| 印江| 陆丰市| 宣武区| 九江市| 双牌县| 丰原市| 唐山市| 高青县| 十堰市| 新津县| 筠连县| 碌曲县| 云龙县| 镇安县| 天水市| 霍州市| 大同市| 长武县| 罗山县| 乐安县| 黔东| 正安县| 韶山市| 塔河县| 贺兰县| 天全县| 肥乡县| 万州区| 海淀区| 庐江县| 平武县|