色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

圖文結合帶你搞懂GreatSQL體系架構

OSC開源社區 ? 來源:OSC開源社區 ? 2023-07-07 15:50 ? 次閱讀

很多小伙伴使用了GreatSQL,但是對GreatSQL的底層原理還不是很了解,今天就帶大家一起揭開GreatSQL體系架構的神秘面紗!

首先來回顧一張經典的體系架構圖:

aedab816-1bf1-11ee-962d-dac502259ad0.png

圖1_GreatSQL5.7 版本體系架構圖

由此可以發現,GreatSQL5.7 由以下幾部分組成

  • 連接池組件
  • 系統管理和控制工具
  • SQL接口組件
  • 查詢解析器
  • 查詢優化器
  • 緩存組件
  • 可插拔存儲引擎
  • 系統和日志文件

GreatSQL數據庫區別于其他數據庫的一個特點就是其可插拔的表存儲引擎,特別需要注意的是,存儲引擎是基于表的,而不是數據庫

然而,經典同時也意味著這幅圖已經相當陳舊了。在GreatSQL8.0 及更高版本中,查詢緩存這一功能已經被移除。

af01b60a-1bf1-11ee-962d-dac502259ad0.png

圖2_GreatSQL8.0 版本體系架構圖

總體來說,GreatSQL8.0 可以分為連接層、服務層、存儲引擎層

一、連接層(Client Connectors)

連接層又名為客戶端連接器(Client Connectors)作用是提供與GreatSQL服務器建立的支持。

客戶端通過TCP/IP協議與GreatSQL服務器建立連接,每個連接對應一個線程。連接管理還包括了連接池技術,以復用已經建立好的連接,減少重復建立連接的開銷。

而且幾乎支持所有主流的服務端編程技術,主要完成一些類似于連接處理、授權認證、及相關的安全方案。

會對從 TCP 傳輸過來的賬號密碼做身份認證、權限獲取

  • 用戶名或密碼不對,會收到Access denied for user錯誤,客戶端程序結束執行

例如:

$mysql-uroot-p
ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:NO)
  • 用戶名密碼認證通過,會從權限表查出賬號擁有的權限與連接關聯,之后的權限判斷邏輯,都將依賴于此時讀到的權限

二、服務層(GreatSQL Server)

服務層是GreatSQL Server的核心,主要包含連接器、分析器、優化器、執行器等,涵蓋 GreatSQL 的大多數核心服務功能,以及所有的內置函數(如日期、時間、數學和加密函數等),所有跨存儲引擎的功能都在這一層實現,比如存儲過程、觸發器、視圖等。

Ⅰ.SQL Interface: SQL接口

接收用戶的SQL命令,并且返回用戶需要查詢的結果。比如SELECT … FROM就是調用SQL Interface,GreatSQL支持DML、DDL、存儲過程、視圖、觸發器、自定義函數等多種SQL語言接口

同時還支持NoSQL,NoSQL泛指非關系型數據庫和數據存儲。隨著互聯網平臺的規模飛速發展,傳統的關系型數據庫已經越來越不能滿足需求。從5.6版本開始,GreatSQL就開始支持簡單的NoSQL存儲功能。GreatSQL8.0 版本對這一功能做了優化,以更靈活的方式實現NoSQL功能,不再依賴模式(schema)。

Ⅱ.Parser: 解析器

在解析器中對 SQL 語句進行語法分析、語義分析。將 SQL 語句分解成數據結構,并將這個結構傳遞到后續步驟,以后 SQL 語句的傳遞和處理就是基于這個結構的,并且判斷你輸入的這個 SQL 語句是否滿足 GreatSQL 語法。

Ⅲ.Optimizer: 查詢優化器

在開始執行之前,還要先經過優化器的處理。

SQL語句在語法解析之后、查詢之前會使用查詢優化器確定 SQL 語句的執行路徑,生成一個執行計劃,可以使用EXPLAIN命令查看執行計劃。

這個執行計劃表明應該使用哪些索引進行查詢(全表檢索還是使用索引檢索),表之間的連接順序如何,最后會按照執行計劃中的步驟調用存儲引擎提供的方法來真正的執行查詢,并將查詢結果返回給用戶。

例如下面的 JOIN 語句:

SELECT*FROMtb1JOINtb2USING(ID)WHEREtb1.a=1andtb2.a=2;

那就有兩種方法可以選擇:

  • 第一種,先取表 tb1 里 a=1 的記錄的ID值,再根據 ID 關聯表 tb2 ,然后再判斷 tb2 里面 a 的值是否等于 2

  • 第二種,先取表 tb2 里面的 a=2 記錄的 ID 值,在根據 ID 值關聯 tb1 ,再判斷 tb1 里面 a 的值是否等于 10

執行的結果肯定是一致的,但是效率就大不相同了,所以我們要選擇用小的數據集去驅動大的數據集,也就是小表驅動大表

Ⅳ.Caches & Buffers:查詢緩存組件

GreatSQL 內部維持著一些 CacheBuffer,比如 Query Cache 用來緩存一條 SELECT 語句的執行結果,如果能夠在其中找到對應的查詢結果,那么就不必再進行查詢解析、優化和執行的整個過程了,直接將結果反饋給客戶端。

但是在 GreatSQL 8.0 版本及以上中刪除了查詢緩存功能,因為查詢緩存必須要兩條SQL語句完全一模一樣,否則是不能觸發查詢緩存,非常的雞肋~

三、引擎層(Storage Engines)

Ⅰ.存儲引擎層

真正的負責了 GreatSQL 中數據的存儲和提取,對物理服務器級別維護的底層數據執行操作,服務器通過API與存儲引擎進行通信

存儲引擎的優勢在于,各式各樣的存儲引擎都具備獨特的特性,從而能夠針對特定的應用需求建立不同存儲引擎表。

GreatSQL 支持的存儲引擎如下:

greatsql>SHOWENGINES;
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
|Engine引擎名稱|Support支持情況|Comment引擎的說明|Transactions事務支持|XA分布式事務支持|Savepoints保存點|
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
|FEDERATED|NO|FederatedMySQLstorageengine|NULL|NULL|NULL|
|PERFORMANCE_SCHEMA|YES|PerformanceSchema|NO|NO|NO|
|InnoDB|DEFAULT|Percona-XtraDB,Supportstransactions,row-levellocking,andforeignkeys|YES|YES|YES|
|MEMORY|YES|Hashbased,storedinmemory,usefulfortemporarytables|NO|NO|NO|
|MyISAM|YES|MyISAMstorageengine|NO|NO|NO|
|MRG_MYISAM|YES|CollectionofidenticalMyISAMtables|NO|NO|NO|
|BLACKHOLE|YES|/dev/nullstorageengine(anythingyouwritetoitdisappears)|NO|NO|NO|
|CSV|YES|CSVstorageengine|NO|NO|NO|
|ARCHIVE|YES|Archivestorageengine|NO|NO|NO|
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
9rowsinset(0.00sec)

得益于 GreatSQL 數據庫的開源特性,用戶得以依據存儲引擎接口自行編寫個性化的存儲引擎。當對某一種存儲引擎的性能或功能存有疑慮時,可通過優化代碼實現所需特性,這正展示了開源所賦予我們的便捷與力量。

Ⅱ.存儲層

所有的數據,數據庫、表的定義,表的每一行的內容,索引,都是存在 文件系統上,以文件的方式存在的,并完成與存儲引擎的交互。當然有些存儲引擎比如InnoDB,也支持不使用文件系統直接管理裸設備,但現代文件系統的實現使得這樣做沒有必要了。在文件系統之下,可以使用本地磁盤,可以使用DAS、NAS、SAN等各種存儲系統。

總結

所以可以把 GreatSQL 的架構圖簡化如下:

af1c25da-1bf1-11ee-962d-dac502259ad0.png

要把架構圖牢牢記住,對于以后深入理解 GreatSQL 數據庫會有極大幫助!


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9129

    瀏覽量

    85348
  • SQL
    SQL
    +關注

    關注

    1

    文章

    762

    瀏覽量

    44117
  • 數據庫
    +關注

    關注

    7

    文章

    3795

    瀏覽量

    64367

原文標題:圖文結合帶你搞懂GreatSQL體系架構

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    向量中斷能嵌套嗎?請結合ARM體系進行闡述

    向量中斷能嵌套嗎?請結合ARM體系進行闡述各位大神,本人急用,求解答
    發表于 05-08 09:20

    如何對ARM+DSP體系架構進行調試?

    ARM+DSP系統體系結構是怎樣的?ARM+DSP系統工作流程及特點是什么?如何對ARM+DSP體系架構進行調試?
    發表于 04-28 06:29

    嵌入式Linux系統體系架構

    介紹了嵌入式Linux系統體系架構,以及每一層開發人員的開發流程。
    發表于 11-05 06:22

    談談嵌入式處理器的體系架構

    當我們談及嵌入式處理器的體系架構時,一般都是想到Intel的X86架構和ARM公司的ARM架構。X86架構和ARM
    發表于 12-15 06:59

    ARM的體系架構基本概念

    1.基本概念ARM的體系架構版本:即其所使用的指令集的版本。ARM架構支持32位ARM指令集和16位Thumb指令集,后者使代碼存儲空間大大減小并提供一些拓展功能(Jazelle、***、IEM等
    發表于 01-25 06:14

    同濟大學嵌入式體系架構

    同濟大學嵌入式體系架構
    發表于 02-09 14:09 ?17次下載
    同濟大學嵌入式<b class='flag-5'>體系</b><b class='flag-5'>架構</b>

    YDT 1654-2007 IPTV承載網絡體系架構

    YDT 1654-2007 IPTV承載網絡體系架構
    發表于 07-30 15:14 ?24次下載

    自制功放機詳細教程 簡單圖文輕松過程

    本文介紹了自制功放機教程圖解,帶你一步步學會這個方法,詳細功放機DIY方法過程,圖文結合輕松學會。有興趣的朋友一起來看看吧!
    的頭像 發表于 01-19 10:25 ?11.4w次閱讀
    自制功放機詳細教程 簡單<b class='flag-5'>圖文</b>輕松過程

    Altera開發中RF體系架構解析

    Altera開發的RF體系架構
    的頭像 發表于 06-13 15:35 ?4003次閱讀
    Altera開發中RF<b class='flag-5'>體系</b><b class='flag-5'>架構</b>解析

    復雜裝備的PHM數據體系架構設計方案

    復雜裝備的PHM數據體系架構設計方案
    發表于 06-25 16:02 ?7次下載

    軍用Ad Hoc網絡分層體系架構及安全協議綜述

    軍用Ad Hoc網絡分層體系架構及安全協議綜述
    發表于 06-27 14:27 ?8次下載

    GreatSQL面向金融級應用的數據庫

    ./oschina_soft/gitee-GreatSQL.zip
    發表于 06-17 15:00 ?0次下載
    <b class='flag-5'>GreatSQL</b>面向金融級應用的數據庫

    88頁PPT帶你搞懂集成電路封裝(附下載)

    +,2小時極速發貨!買電子元器件,上華秋商城>>>點擊進入?戳“閱讀原文”上華秋商城搜索元器件原文標題:88頁PPT帶你搞懂集成電路封裝(附下載)文章出處:【微信公眾號:華秋商城】歡迎添加關注!文章轉載
    的頭像 發表于 11-18 20:11 ?910次閱讀
    88頁PPT<b class='flag-5'>帶你</b><b class='flag-5'>搞懂</b>集成電路封裝(附下載)

    技術干貨 | 654頁PPT帶你搞懂模擬電子(附下載)

    來源:安徽大學,PPT很長,本文僅展示部分內容。如需下載完整PPT,進入“華秋商城”公眾號發送“模擬電子技術”即可下載。【報告推薦】◇63頁PPT帶你搞懂元宇宙(附下載)◇第三代半導體:新能源汽車
    的頭像 發表于 01-07 14:38 ?930次閱讀
    技術干貨 | 654頁PPT<b class='flag-5'>帶你</b><b class='flag-5'>搞懂</b>模擬電子(附下載)

    【硬核科普】3分鐘帶你搞懂PCB壓合工藝

    銅免費檢測:登錄華秋電路官網>進入用戶中心>點擊孔銅檢測>一鍵申請。點擊孔銅檢測0元PCB打樣原文標題:【硬核科普】3分鐘帶你搞懂PCB壓合工藝文章出處:【微信公
    的頭像 發表于 08-12 09:31 ?1426次閱讀
    【硬核科普】3分鐘<b class='flag-5'>帶你</b><b class='flag-5'>搞懂</b>PCB壓合工藝
    主站蜘蛛池模板: 久欠热视频精品首页| 高挑人妻无奈张开腿| 99re久久热最新地址一| 92看看福利午夜影院| hd性欧美俱乐部中文| adc年龄确认大驾光临入口| 成人AV精品视频| 精品少妇爆AV无码专区| 国产精品外围在线观看| 国内九一激情白浆发布| 精品人伦一区二区三区潘金莲 | 国产精品黄色大片| 果冻传媒2021在线观看| 开心色99xxxx开心色| 人妖和美女玩| 亚洲第一区欧美日韩精品| 伊人久久大香线蕉观看| bbw极度另类孕妇| 国产乱码二卡3卡四卡| 久久免费视频1| 人与人特黄一级| 亚洲精品一区三区三区在线观看| 亚洲中文字幕永久在线| japanese色系free日本| 国产精品亚洲污污网站入口| 久久视频在线视频| 日本无翼恶漫画大全优优漫画| 亚洲AV精品无码国产一区| 18禁黄无遮挡禁游戏在线下载| 纯h超级大尺度小黄文| 精品国产成a人在线观看| 欧美一区二区视频97色伦| 亚洲国产日韩制服在线观看| 2022年国产精品久久久久| 97免费人妻在线观看| 国产成人高清精品免费5388密| 久久www成人看片| 入禽太深免费观看| 曰本熟妇乱妇色A片在线| 国产成人精品亚洲线观看| 理论片午午伦夜理片I|