|
安裝完Mysql后,使用VS打開源碼開開眼,我嘞個(gè)去,這代碼和想象中怎么差別這么大呢?感覺代碼有些凌亂,注釋代碼都寫的比較隨意,好像沒有什么統(tǒng)一的規(guī)范,不同的文件中代碼風(fēng)格也有差異,可能Mysql經(jīng)過了很多牛人的手之后,集眾牛人之長吧。也可能是我見識比較淺薄,適應(yīng)了自己的代碼風(fēng)格,井底之蛙了,總之還是懷著敬畏的心情開始咱的源碼之旅吧。本人菜鳥,大神輕拍。
Mysql可以啟動起來了,應(yīng)該怎么學(xué)習(xí)呢?總不能從main開始一步一步的看吧,Mysql作為比較底層的大型軟件,涉及到數(shù)據(jù)庫實(shí)現(xiàn)的方方面面,沒有厚實(shí)的數(shù)據(jù)庫理論基礎(chǔ)和對Mysql各個(gè)模塊相當(dāng)?shù)氖煜ぃ瑥膍ain開始勢必會把自己引入某個(gè)死胡同啊,什么都看,最后啥也不會,咱傷不起。
經(jīng)過思考后,我想還是通過客戶端來調(diào)試服務(wù)器,從而學(xué)習(xí)服務(wù)器代碼比較現(xiàn)實(shí)。也就是通過客戶端的動作,看服務(wù)器的反應(yīng)。比如從客戶端的登錄動作來看SERVER如何進(jìn)行通信、用戶識別、鑒定以及任務(wù)分配的,通過CREATE TABLE,來看SERVER如何解析DDL語句以及針對不同的存儲引擎采取的不同的物理存儲方式,通過INSERT語句,來看SERVER如何進(jìn)行Btree的操作。通過SELECT語句來看如何進(jìn)行SQL語句語法樹的創(chuàng)建和優(yōu)化的,通過ROLL BACK,來看SERVER事務(wù)是如何實(shí)現(xiàn)的。這里主要是通過跟蹤代碼學(xué)習(xí)Mysql數(shù)據(jù)庫實(shí)現(xiàn)的思想,對于具體的代碼不去做過多的追究(主要是我對C++不是很熟悉),好讀書,不求甚解,呵呵。
由此,暫時(shí)準(zhǔn)備了以下幾條SQL語句,來有針對的進(jìn)行SERVER的分析。
1、 LOGIN(登錄)
mysql.exe –uroot –p
2、 DDL(建表語句)
create table tb_myisam(c1 int, c2 varchar(256)) engine = myisam;
create table tb_innodb(c1 int, c2 varchar(256)) engine = innodb;
3、 INSERT
Insert into tb_myisam values(1 , ’寂寞的肥肉’);
Insert into tb_innodb values(1 , ’寂寞的肥肉’);
4、 SELECT
Select c1 from tb_myisam;
Select * from tb_innodb;
5、 ROLLBACK
it知識庫:MySQL源碼學(xué)習(xí)筆記——偷窺線程,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。