中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

朔州市| 清丰县| 军事| 徐汇区| 襄汾县| 宜兰县| 汕头市| 凤城市| 易门县| 兰西县| 德江县| 武邑县| 寿光市| 黑山县| 福安市| 罗山县| 合水县| 温泉县| 明星| 清流县| 泗水县| 元阳县| 泾阳县| 伊宁市| 万州区| 诸城市| 商都县| 黄龙县| 平顶山市| 乌审旗| 巧家县| 都昌县| 化德县| 德州市| 淳化县| 宁国市| 思南县| 定州市| 顺昌县| 色达县| 兴仁县|