這篇文章主要講解了“TiDB怎么新建一張表”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“TiDB怎么新建一張表”吧!

TiDB是一個開源分布式數據庫,并使用Rust編寫的TiKV存儲數據,其中TiDB是一個SQL語法解析層,本文使用MockDB模擬本地存儲數據,從語法解析到實際存儲操作進行分析一張數據表是如何建出來的。
過程如下:
首先我們得有一個建表語句
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), PRIMARY KEY (Id_P) )
TiDB拿到一個SQL語句之后,首先需要使用Parser進行語法解析 
上圖中的代碼為Parser的goyacc語法,最終SQL在Parser中走了一圈之后生成CreateTableStmt的結構,該結構具體的屬性如下圖所示:
在語法解析完成之后,就需要生一個抽象語法樹AST,TiDB使用火山模型向下鉆取生成語法樹。
!
如果語法樹生成的沒有問題,接下來就要build一個LogicPlan,當然在build之前我們先進行一些預檢查: 
預檢查主要包括一些表名合法性檢查,列名合法性檢查,約束檢查,主鍵檢查等。
在確保AST檢查無誤之后,我們開始處理步驟3中生成的AST語法樹。其中在ddl_api.go中我們再做更詳細的檢查,并最終生成一個TableInfo的結構,這個結構中保存了所有表相關的信息。并提交一個類型為Type: model.ActionCreateTable 的Job。
在ddl_worker.go接收到步驟5中的Job之后真正開始作為一個原子操作處理保存TableInfo的任務。其中t.CreateTable(schemaID, tbInfo) 將會真正調用Hash接口的API將TableInfo序列化之后存入后端存儲中。 
在存儲完成之后調用job.FinishTableJob通過前端建表語句已經執行完成。
感謝各位的閱讀,以上就是“TiDB怎么新建一張表”的內容了,經過本文的學習后,相信大家對TiDB怎么新建一張表這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!
分享名稱:TiDB怎么新建一張表-創新互聯
鏈接分享:http://www.yijiale78.com/article26/pijjg.html
成都網站建設公司_創新互聯,為您提供商城網站、手機網站建設、網站建設、外貿網站建設、App開發、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯