mysql架構組成

  1. 配置文件
    • window中:my.ini文件
    • linux中: /etc/my.cnf
  2. 物理文件組成
    • 日記文件-->日記文件的選項配置文件(my.ini/my.cnf)mysql

      • 錯誤日記linux

        log-error<br> 記錄的主要是較爲嚴重的警告和錯誤消息,每次啓動和關閉的詳細信息等,默認關閉的。sql

      • 二進制日記數據庫

        log-bin<br> 很是重要,未來作master/slave機制,slave要和master同步是來讀取master的binlog來完成同步的。<br> 有些錯誤操做也須要經過binlog來恢復的。<br> 默認是關閉的,實際應用中應該開啓。緩存

      • 更新日記服務器

        目前版本已經不支持架構

      • 查詢日記併發

        log<br> 記錄全部的查詢,開啓以後對mysql性能影響比較大,通常是不開啓的。高併發

      • 慢查詢日記工具

        log-slow-queries<br>

    • 數據文件

      • .frm文件
      • .myd文件
      • .myi文件
      • .idb文件
  3. 系統架構
    • 服務器管理中的模塊
      • SQL Interface SQL接口
      • Parse 解析器
    • Optimizer 優化器模塊
      • 對於mysql而言任何查詢語句都須要通過這個優化器模塊來解析查詢語句,並獲得最優的執行計劃(優化器模塊以爲最優的),而後就會按這個計劃執行查詢
      • Cache 緩存
      • 存儲引擎
        • MyISAM 存儲引擎
          • 安裝mysqlserver就已經安裝上
          • 建立表的指定便可
          • 不支持主外鍵關係,不支持事務的。
          • 表鎖 即便操做一條記錄也會鎖住整個表,那麼不適合高併發的操做。
          • 緩存的時候只緩存索引,不緩存真實數據,真實數據是經過os級別的緩存去完成的。
        • Innodb 存儲引擎
          • 安裝mysqlserver就已經安裝上
          • 建立表的指定便可
          • 支持外鍵關係,支持事務操做(大部分場景使用)
          • 行鎖,操做時候只鎖住一行,適合高併發操做
          • 緩存的時候不只緩存索引還緩存真實數據,對內存要求高,並且內存大小對性能影響
        • NDB存儲引擎(cluster)
          • NDB存儲引擎要獨立於mysqlserver,單獨安裝
          • cluster實際上是集羣自動管理的一種機制
          • mysql這方面不是很成熟,用的不多
          • PS: 有一家公司叫percona 出了一個數據庫percona(對mysql進行了修改),該公司也出了一款存儲引擎叫xtrdb,徹底能夠代替xtrdb,而且性能和併發作的更好,而且提供了一些工具。阿里巴巴大部分mysql都是在percona的原型加以修改。
相關文章
相關標籤/搜索