亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

TiDB怎么新建一張表

發布時間:2021-12-23 10:14:05 來源:億速云 閱讀:211 作者:iii 欄目:開發技術

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

TiDB是一個開源分布式數據庫,并使用Rust編寫的TiKV存儲數據,其中TiDB是一個SQL語法解析層,本文使用MockDB模擬本地存儲數據,從語法解析到實際存儲操作進行分析一張數據表是如何建出來的。
過程如下:

  1. 首先我們得有一個建表語句

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)
)
  1. TiDB拿到一個SQL語句之后,首先需要使用Parser進行語法解析 TiDB怎么新建一張表
    上圖中的代碼為Parser的goyacc語法,最終SQL在Parser中走了一圈之后生成CreateTableStmt的結構,該結構具體的屬性如下圖所示:
    TiDB怎么新建一張表

  2. 在語法解析完成之后,就需要生一個抽象語法樹AST,TiDB使用火山模型向下鉆取生成語法樹。 TiDB怎么新建一張表!

  3. 如果語法樹生成的沒有問題,接下來就要build一個LogicPlan,當然在build之前我們先進行一些預檢查: TiDB怎么新建一張表
    預檢查主要包括一些表名合法性檢查,列名合法性檢查,約束檢查,主鍵檢查等。

  4. 在確保AST檢查無誤之后,我們開始處理步驟3中生成的AST語法樹。其中在ddl_api.go中我們再做更詳細的檢查,并最終生成一個TableInfo的結構,這個結構中保存了所有表相關的信息。并提交一個類型為Type: model.ActionCreateTable 的Job。

  5. 在ddl_worker.go接收到步驟5中的Job之后真正開始作為一個原子操作處理保存TableInfo的任務。其中t.CreateTable(schemaID, tbInfo) 將會真正調用Hash接口的API將TableInfo序列化之后存入后端存儲中。 TiDB怎么新建一張表
    在存儲完成之后調用job.FinishTableJob通過前端建表語句已經執行完成。

感謝各位的閱讀,以上就是“TiDB怎么新建一張表”的內容了,經過本文的學習后,相信大家對TiDB怎么新建一張表這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

AI

许昌县| 新干县| 苗栗县| 图们市| 桐梓县| 常州市| 化隆| 襄垣县| 昭觉县| 龙泉市| 铜梁县| 红桥区| 崇仁县| 安阳县| 秀山| 南皮县| 怀仁县| 隆林| 石楼县| 常山县| 萍乡市| 乐安县| 渑池县| 虞城县| 五华县| 卫辉市| 醴陵市| 什邡市| 尼木县| 永靖县| 柯坪县| 汨罗市| 蛟河市| 石城县| 迭部县| 泽库县| 全椒县| 福贡县| 闻喜县| 磴口县| 滨州市|