原创 Mysql源代碼閱讀筆記(九) 查詢執行

查詢執行 查詢執行的入口點: /**   Parse a query.   @param       thd     Current thread   @param       rawbuf  Begining of the que

原创 Mysql學習筆記(一) 併發控制

併發是相對事務而言的。 隔離級 SQL標準定義了4類隔離級,包括了一些具體規則,用來限定事務內外的哪些改變時可見的,哪些是不可見的。低級別的隔離級一般支持更高的併發處理,並擁有更低的系統開銷。READ UNCOMMITTED(讀取未

原创 網友博客收藏

http://tiny4.org/myhome/

原创 編譯原理筆記

(一)編譯原理句子和句型的區別 句型是推導過程中生成的產生式。 如:有下列文法:   S→AB   A→aA|a   B→bB|b 用上述文法推導字符串aaabbb過程如下:   S→AB→aAB→aaAB→aaaB→aaabB→aaa

原创 編譯原理詞彙表

分析  parse 推導  derivation 規約  reduce 產生式  production 最右  rightmost 最左  leftmost

原创 Mysql源代碼閱讀筆記(二) 重要數據結構

(1)The THD Class /**   @class THD   For each client connection we create a separate thread with THD serving as   a thr

原创 Mysql源代碼閱讀筆記(一) 命令行參數

在mysqld.cc文件裏面有具體的命令行參數處理代碼: 調用順序是: win_main()或者mysqld_main()       主入口點 init_common_variables()                   初始化系

原创 Mysql源代碼閱讀筆記(六)命令彙總

enum enum_server_command { COM_SLEEP,  COM_QUIT,  COM_INIT_DB,  COM_QUERY,  COM_FIELD_LIST,  COM_CR

原创 Mysql源代碼閱讀筆記(八) 詞法、語法分析器

SQL 語句的處理過程: 詞法分析,語法分析,語義分析,構造執行樹,生成執行計劃,計劃的執行。 Mysql 並沒有使用lex來實現詞法分析,但是語法分析卻用了yacc。 與之對比的Sqlite3數據庫,SQLite的詞法分析器是手工寫的

原创 Mysql源代碼閱讀筆記(一) 系統變量和系統狀態變量

閱讀Mysql源代碼的過程中,我們要面對很多服務器系統變量和系統狀態:                                                                                   

原创 SQL語句的預編譯

在學習數據庫編程時,我們都知道在執行SQL命令時,有二種選擇: 可以使用PreparedStatement對象, 也可以使用Statement對象。 而熟悉JDBC編程的大俠們都會選擇使用PreparedStatement對象,主要因爲

原创 Mysql源代碼閱讀筆記(一) 代碼流程

代碼分析基於最新的5.5.21 Mysql服務器的main()在/sql/main.cc,實際的入口點在/sql/mysqld.cc。 我們直接從mysqld_main()開始閱讀。 先理解一些比較重要的宏定義: (1)宏HAVE_NP

原创 Mysql源代碼閱讀筆記(三) 重要的宏

Mysql的宏分爲 (一)通過CMake自動掃描得到的宏 (1)Have_NPTL: (2)Have_POLL: (3)HAVE_FCNTL: (4)HAVE_SYS_UN_H: (5)HAVE_LIBWRAP: (二)通過CMak

原创 Mysql源代碼閱讀筆記(七)查詢緩衝

  /*     Warning.     The purpose of query_cache_send_result_to_client() is to lookup the    query in

原创 Mysql源代碼閱讀筆記(四) 服務器監聽

(一)服務器/客戶端版本 1. 入口點: handle_connections_sockets()函數 我們在此要用實例程序做實驗,學習Mysql服務器所使用的兩種事件監聽技術:select和poll同時介紹更給力的事件監聽技術epo