mysql第一天 架構,mysql第一天架構

來源:互聯網
上載者:User

mysql第一天 架構,mysql第一天架構
架構

mysql最大的特色就是把查詢處理與 實際的資料存放區和提取(儲存引擎)的操作分開了。其整體的架構如下:

  • Connectors 看到JDBC就懂起了,是串連mysql的各種用戶端
  • Connection Pool 用於建立使用者串連,緩衝連接線程,做串連池。 還有鑒權
    修改my.ini重啟可以修改最大串連數:
max_connections=200

查看當前變數配置:

SHOW VARIABLES like 'max_c%';

下面的命令還能查看具體的當前串連的資訊:

 SHOW processlist;

雖然mysql內建了串連池,但是更多的還是使用用戶端串連池的方式。
基本的原理就是一次建立串連之後緩衝,然後所有調用串連的地方都從池中取封裝之後的
在關閉池中取出的串連時不會真正的關閉串連,而是放回池中,這樣就減少了鑒權,三向交握等等操作,增加效能。

  • SQL Interface
    內建函數,DML, DDL,預存程序,視圖,觸發器,都在這邊。
  • Parser
    解析器, 主要有兩個功能。驗證sql語句是否正確, 把sql語句解析為資料結構,以後只使用這個結構。
    解析器的功能基本上都是這樣的,比如Spring中也有xml的解析器也是先轉化為一個資料結構之後使用這個資料結構。
  • Optimizer
    最佳化器。 記得JVM也是有最佳化器的,會進行重排序呀,以及解釋文法糖啊等等操作。
    解析器解析成樹,然後進行重寫查詢,決定表的讀取順序,以及選擇合適的索引的操作。在解析查詢之前會先檢查緩衝,如果命中就沒有解析最佳化和執行的過程。
    這裡有一個更好的說明:http://blog.csdn.net/whyangwanfu/article/details/1943021
  • Cache & Buffer
    緩衝,執行查詢語句的時候會先查緩衝,如果命中則直接返回,如果沒命中才去查sql語句
  • Managerment Service
    非常強大的管理功能, 監控,備份,還原, 鏡像, 叢集。。。。
  • Storage Engine
    儲存引擎,
常用的儲存引擎
SHOW TABLE STATUS like 'biz_pay_task';

這樣可以查看錶的各種資訊,包括儲存引擎

InnoDB
  • 適用於大多數成功少復原的大量短期事務
  • 使用MVCC來支援高並發
  • 實現了四個隔離等級,預設REPEATEABLE READ
  • 通過間隙鎖策略防止幻讀的出現
MyISAM
  • 檔案分離
  • 恢複慢
  • 支援GIS,全文索引,壓縮
  • 表鎖,不支援事務
Memmory

這就是Redis呀

Infobright

面向列的儲存引擎,適用於資料倉儲

選擇引擎
可以從如下的幾個出發點:
  • 是否需要事務 InnoDb
  • 是否用到全文索引 InnoDB + Sphinx
  • 備份及恢複 InnoDB
  • 日誌型, 插入效能要求高, 用MyISAM,還能隨時拷貝備庫去做分析

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

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.