MariaDB命令介紹及MariaDB架構圖和索引

來源:互聯網
上載者:User

MariaDB命令介紹及MariaDB架構圖和索引

mariadb> SHOW GLOBAL VARIABLES; 全域變數影響伺服器的全域操作

mariadb> SHOW [SESSION] VARIABLES; 用戶端變數,只對當前會話生效

注意:其中有些參數支援運行時修改,會立即生效;有些參數不支援,且只能通過修改設定檔,並重啟伺服器程式生效

有些參數範圍是全域的,且不可改變;有些可以為每個使用者提供單獨的設定

修改伺服器變數的值

全域:  mariadb> SET GLOBAL system_varname=value;

     mariadb> SET @@global.system_varname=value;

會話:  mariadb> SET [SESSION] system_varname=value;


例如: set global sql_mode=strict_trans_tables;   常用MODE:TRADITIONAL, STRICT_TRANS_TABLES

sql_mode預設為空白,建議開發人員將這個值設為strict 模式,這樣有些問題可以在資料庫的設計和開發階段就能發現,而如果在生產環境下運行資料庫後發現這類問題,那麼修改的代價將變得十分巨大

狀態變數:用於儲存mariadb運行中的統計資料的變數

      mariadb> SHOW GLOBAL STATUS;

     mariadb> SHOW [SESSION] STATUS;

 

如何擷取程式預設使用的配置:mysql --print-defaults(用戶端)    mysqld --print-defaults(服務端)

mariadb工作於單進程多線程模式,下面是一張mariadb架構圖

mariadb查詢執行路徑

    1:用戶端發送一條查詢給伺服器

    2:伺服器先會檢查查詢快取,如果命中了緩衝,則立即返回儲存在緩衝中的結果。否則進入下一階段


    3:伺服器端進行SQL解析、預先處理,再由最佳化器產生對應的執行計畫

    4:MariaDB根據最佳化器產生的執行計畫,調用儲存引擎的API來執行查詢

    5:將結果返回給用戶端

上面這張圖可以看到整個students表中,StuID欄位有一個叫PRIMARY的索引

key: PRIMARY 此次查詢用到的索引  type: const 這個欄位表示查詢一行,在資料庫中直接載入一行(rows: 1),這就是索引的效果,通過索引直接定位到了要載入的行

age欄位中沒有索引,type: ALL:進行了全表掃描,取了25行(rows: 25),  把所有行都取出來後使用where條件對每一行逐個過濾

(Extra: Using where)

如果表的資料大的話,第二種相對於第一種查詢會很慢!!

 

查詢快取:

    查詢語句任何字元上的不同,都會導致緩衝不能命中,緩衝的資料都放在記憶體中

    哪些查詢可能不會被緩衝:查詢中包含UDF、儲存函數、使用者自訂變數、暫存資料表、mysql庫中系統資料表、或者包含列級許可權的

    表、有著不確定值的函數(Now())

 

查詢快取相關的伺服器變數:query_cache_min_res_unit: 查詢快取中記憶體塊的最小分配單位

       較小值會減少浪費,但會導致更頻繁的記憶體配置操作,較大值會帶來浪費,導致片段過多

        query_cache_limit:能夠緩衝的最大查詢結果

        query_cache_size:查詢快取總共可用的記憶體空間;單位是位元組,必須是1024的整數倍,預設為0表示不開啟

query_cache_wlock_invalidate:如果某表被其它的串連鎖定,是否仍然可以從查詢快取中返回結果;預設值為OFF,表示可以在表

被其它串連的情境中繼續從緩衝返回資料;ON則表示不允許

以上變數可以通過show global variables like '%query%';命令擷取

查看快取命中次數:show global status like 'Qcache%';

查看查詢次數show global status like 'com_select';

快取命中率的評估:Qcache_hits/(Qcache_hits+Com_select)

Linux系統教程:如何檢查MariaDB服務端版本 

MariaDB Proxy讀寫分離的實現

Linux下編譯安裝配置MariaDB資料庫的方法

CentOS系統使用yum安裝MariaDB資料庫

安裝MariaDB與MySQL並存

Ubuntu 上如何將 MySQL 5.5 資料庫遷移到 MariaDB 10 

[翻譯]Ubuntu 14.04 (Trusty) Server 安裝 MariaDB 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.