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

溫馨提示×

溫馨提示×

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

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

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

横山县| 长治市| 喀喇| 克什克腾旗| 壶关县| 普格县| 浮梁县| 浪卡子县| 乳山市| 墨脱县| 嵊泗县| 西安市| 资溪县| 博白县| 九龙城区| 大石桥市| 饶阳县| 兴山县| 喜德县| 工布江达县| 综艺| 喀什市| 安泽县| 临海市| 大同市| 夏河县| 仁布县| 宁远县| 横峰县| 泾川县| 安仁县| 桦川县| 贺兰县| 云安县| 高尔夫| 桂平市| 乐清市| 大新县| 台中市| 鄂伦春自治旗| 灵石县|