新聞中心
MariaDB Server 是最流行的開源關系型數據庫之一。它由 MySQL 的原始開發(fā)者制作,并保證保持開源。它是大多數云產品的一部分,也是大多數Linux發(fā)行版的默認配置。MariaDB 被設計為 MySQL 的直接替代產品,具有更多功能,新的存儲引擎,更少的錯誤和更好的性能。

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站設計、網站建設、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的冠縣網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
數據庫及關系型數據庫
數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,而mysql、oracle、mariadb等都是數據庫管理軟件(DBMS),是管理數據庫用的。
關系型數據庫
關系型數據庫是一個數據集合,數據存儲在相應的數據表中,而“關系”就是指各個表之間的關聯(lián)。表的每一行代表一條記錄,每一列代表一個字段,或稱為數據的屬性亦可,這種存儲方式也是最貼合我們的實際生活,例如下圖這張表,從我們上學開始便經常見到。
SQL語言
結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統(tǒng),同時也是數據庫腳本文件的擴展名。
結構化查詢語言主要包含3個部分:一:數據查詢語言(DQL:Data Query Language):也稱為“數據檢索語句”,用以從表中獲得數據,確定數據怎樣在應用程序給出。關鍵字:SELECT、WHERE、ORDER BY、GROUP BY、HAVING二:數據操作語言(DML:Data Manipulation Language):主要用于添加,修改和刪除表中的行。關鍵字:INSERT、UPDATE、DELETE三:數據定義語言(DDL):主要用于在數據庫中創(chuàng)建新表或刪除表(CREAT TABLE 或 DROP TABLE),為表加入索引等。關鍵字:CREATE、DROP
簡介
MariaDB數據庫管理系統(tǒng)是MySQL的一個分支,主要由開源社區(qū)在維護,采用GPL授權許可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。在存儲引擎方面,使用XtraDB來代替MySQL的InnoDB。以上內容抄自百度百科,寫本文時的mariadb10.3已經切換為Innodb為默認存儲引擎了,其實XtraDB和InnoDB是一回事,可以看作是InnoDB的社區(qū)版。
Mariadb邏輯架構
當Mariadb接受到Sql語句時,其詳細的執(zhí)行過程如下:1 當客戶端連接到 mariadb 的時候,會認證客戶端的主機名,用戶,密碼,認證功能可以做成插件。2 如果登錄成功,客戶端發(fā)送 sql 命令到服務端3 由解析器解析 sql 語句4 服務端檢查客戶端是否有權限去獲取它想要的資源5 如果查詢已經存儲在 query cache 當中,那么結果立即返回6 優(yōu)化器將會找出最快的執(zhí)行策略,或者是執(zhí)行計劃,也就是說優(yōu)化器可以決定什么表將會被讀,以及哪些索引會被訪問,哪些臨時表會被使用,一個好的策略能夠減少大量的磁盤訪問和排序操作等。7 存儲引擎讀寫數據和索引文件,cache 用來加速這些操作,其他的諸如事物和外鍵特性,都是在存儲引擎層處理的。
實例
MySQL(Mariadb)是單進程多線程,也就是說,每一個Mysql實例在系統(tǒng)上就是一個服務進程,一個實例可以擁有不同的配置文件、端口,管理不同的數據庫等,Mariadb 實例其實就是個 mysqld 文件,在Linux 上,可以直接運行,但是一般都是由mysqld_safe 腳本來調用,mysqld_safe 腳本既可以啟動實例,又可以重啟意外終端的實例,在生產環(huán)境中比 mysqld 更安全。
存儲引擎
存儲引擎在物理層管控數據,它負責數據文件、數據、索引、cache等的管理,這使得管理和讀取數據變得更高效,每一張表,都有一個.frm 文件,這些文件包含著表的定義。使用 “show engines” 命令或者通過查詢 information_schema.engines 表可以查看存儲引擎相關變量,如下圖:每一個存儲引擎管理、存儲數據的方式都是不同的,所支持的特性和性能也不盡相同,例如:MyISAM,適合讀多寫少的環(huán)境,且不支持事務,支持全文索引等InoDB,支持事務,支持行鎖和外鍵等MEMORY,將數據存儲在內存當中CSV,將數據存儲為CSV格式等等等,所以,選擇合適的數據引擎尤為重要。
查看當前默認是什么存儲引擎:SELECT @@global.storage_engine;
mysql命令行技巧
解決輸出過長
\G 標識符的使用,將每一行記錄當作一頁輸出,如下圖:
\P 標識符設定pager,常用的pager有l(wèi)ess、more、grep、md5sum等,說白了就是使用管道將標準輸出(STO)輸出到Pager中去。
本文題目:詳解MariaDB架構
分享URL:http://www.dlmjj.cn/article/djgpehp.html


咨詢
建站咨詢
