MySQL存儲引擎介紹

    MySQL主要有兩個層次組成:MySQL核心【MySQL服務器層】、插件式存儲引擎
    MySQL處理機制無論在覈心上如何被解析,最後如果真正實現跟文件系統上的文件交互時,一定要經過存儲引擎來完成。真正把MySQL操作接收下來並提交給底層文件上對應的數據完成操作,並將結果返回給上層MySQL核心的是MySQL存儲引擎,各存儲引擎通過統一的API向MySQL服務器提供一個統一的數據存取、加鎖等操作。
    
    MySQL內部表狀態信息查看,使用  show table status like 'xxx';
    在表的屬性信息當中,主要關注存儲引擎類型,其下很多信息都是存儲引擎決定的
    存儲引擎:
        查看錶狀態信息:
        SHOW TABLE STATUS [{FROM | IN} db_name]
            [LIKE 'pattern' | WHERE expr]
    SHOW TABLE STATUS works likes SHOW TABLES, but provides a lot of
    information about each non-TEMPORARY table. You can also get this list
    using the mysqlshow --status db_name command.
    
    MariaDB [book]> desc yuwen;
    +-------+------------+------+-----+---------+-------+
    | Field | Type       | Null | Key | Default | Extra |
    +-------+------------+------+-----+---------+-------+
    | name  | char(10)   | NO   |     | NULL    |       |
    | page  | tinyint(4) | NO   |     | NULL    |       |
    +-------+------------+------+-----+---------+-------+
    2 rows in set (0.00 sec)
    MariaDB [book]> show table status like 'yuwen'\G
    *************************** 1. row ***************************
               Name: yuwen
             Engine: InnoDB
            Version: 10
         Row_format: Compact
               Rows: 0
     Avg_row_length: 0
        Data_length: 16384
    Max_data_length: 0
       Index_length: 0
          Data_free: 10485760
     Auto_increment: NULL
        Create_time: 2015-04-01 10:25:46
        Update_time: NULL
         Check_time: NULL
          Collation: latin1_swedish_ci
           Checksum: NULL
     Create_options:
            Comment:
    1 row in set (0.00 sec)
    表狀態信息本身就是一張表,此時需要選擇了庫,不讓可以加 from db_name來指定庫
    MariaDB [book]> show table status\G
    *************************** 1. row *************************** 1行
               Name: yuwen
             Engine: InnoDB
            Version: 10
         Row_format: Compact
               Rows: 0
     Avg_row_length: 0
        Data_length: 16384
    Max_data_length: 0
       Index_length: 0
          Data_free: 10485760
     Auto_increment: NULL
        Create_time: 2015-04-01 10:25:46
        Update_time: NULL
         Check_time: NULL
          Collation: latin1_swedish_ci
           Checksum: NULL
     Create_options:
            Comment:
    1 row in set (0.00 sec)
    有多張表時,會顯示多張表的信息
    只查看指定的表可以使用where條件來對錶的狀態進行過濾
    MariaDB [test]> show table status where Name='xxx';  Name可以是| Name  | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time | Check_time | Collation         | Checksum | Create_options | Comment |這些值
    MariaDB [(none)]> show table status from hellodb where Name='students'\G
    
        存儲引擎:也稱爲表類型    定義了一個表在其內部的存儲格式和所支持的特性,存儲引擎是表級別的概念
    真正存儲引擎在其內部實現上是在表級別實現的,一個MySQL數據庫可以有多張表,每一張都有其獨有的存儲引擎,但是建議在同一個庫內所有的表儘可能使用相同的存儲引擎,如:將來要執行多表操作時,如果說表的存儲引擎不同,在數據庫的某些表上啓動事務時一旦某些數據不想提交想回滾,InnoDB中的表數據能回滾,myisam中的表數據不能回滾。
    
            SHOW TABLE STATUS WHERE Name='students'\G
            *************************** 1. row ***************************
                       Name: students 表名
                     Engine: InnoDB  表的存儲引擎類型
                    Version: 10   版本
                 Row_format: Compact  行格式,對於myisam表來講可選的只有dynamic【表示其行的長度是可變的】、fixed【表示其行的長度是固定定長的】(是dynamic還是fixed取決於字段類型,如果字段有varchar、varbinary則其長度是可變的,無text、blob、varchar、varbinary類型的話其長度就是固定的)、compressed【行是壓縮存放的,數據是壓縮後存放的,一旦壓縮存放說明是myisam的壓縮存放的壓縮表】InnoDB: Compact【緊湊類型,表示表的數據內部也是壓縮存放的】, Redundent【數據是冗餘的】
                       Rows: 18  表中現有的行數,對於myisam而言此值是精確的,但是對於InnoDB是不確定的,因爲支持事務的時候,有些行插入進來未必是看到的最終結果,僅是一個估計值
             Avg_row_length: 910  平均每行所包含的字節數
                Data_length: 16384  數據大小,當前表中所有數據的大小,單位字節
            Max_data_length: 0    表的最大容量,0表示沒有限制,但是此值與存儲引擎相關,不同的存儲引擎所支持的最大表存儲空間是不一樣的
               Index_length: 32768  索引長度,單位是字節
                  Data_free: 0     空閒的數據空間,對於myisam表來講表示已分配但尚未佔用的空間,MySQL分配數據,數據表文件增長是漸進式的,一旦空間不夠用時,額外申請一個盤區來存數據,但存數據時會有些多餘的空間沒有存完,存完後再申請一個,對於InnoDB來講這是表空間文件的剩餘空間
             Auto_increment: 27   自動增長
                Create_time: 2014-08-29 10:00:16   表創建時間
                Update_time: NULL   表最後的修改時間,NULL沒有實際值,沒有定義
                 Check_time: NULL   使用check table命令或myisam check工具最近一次檢查表的時間,主要對myisam表有用
                  Collation: utf8_general_ci  默認的排序規則,隱含了字符集信息
                   Checksum: NULL   校驗和,在create table時可以指定啓用校驗和,啓用的話,則會存儲校驗和
             Create_options:   創建表時,額外指定的選項,如果爲視圖,則爲 view
                    Comment:   註釋信息
    
            Row_format:
                MyISAM: Dynamic, Fixed, Compressed
                InnoDB: Compact, Redundent
    
            Rows: 行數
            Avg_row_length: 平均每行包含的字節數
    
            Check_time: 使用CHECK TABLE或者myisamchk工具最近一次檢查表的時間;
    
        MySQL存儲引擎特性:
    
            使用最多的InnoDB:【早期MySQL 5.1之前,默認存儲引擎爲myisam,從5.5開始默認存儲引擎是InnoDB】 設計用於處理大量的短期事務;支持自動的崩潰恢復;【有自動的崩潰恢復的特性,因爲存在事務日誌,並且存儲引擎能基於事務日誌自我實現完成恢復】  早期屬於innoBase公司,後來被oracle收購
    
    查看MySQL下所支持的所有存儲引擎
    MariaDB [test]> show engines\G
    *************************** 1. row ***************************
          Engine: MyISAM
         Support: YES
         Comment: MyISAM storage engine
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 2. row ***************************
          Engine: CSV
         Support: YES
         Comment: CSV storage engine
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 3. row ***************************
          Engine: MRG_MYISAM
         Support: YES
         Comment: Collection of identical MyISAM tables
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 4. row ***************************
          Engine: BLACKHOLE
         Support: YES
         Comment: /dev/null storage engine (anything you write to it disappears)
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 5. row ***************************
          Engine: MEMORY
         Support: YES
         Comment: Hash based, stored in memory, useful for temporary tables
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 6. row ***************************
          Engine: PERFORMANCE_SCHEMA
         Support: YES
         Comment: Performance Schema
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 7. row ***************************
          Engine: ARCHIVE
         Support: YES
         Comment: Archive storage engine
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 8. row ***************************
          Engine: FEDERATED
         Support: YES
         Comment: FederatedX pluggable storage engine
    Transactions: YES
              XA: NO
      Savepoints: YES
    *************************** 9. row ***************************
          Engine: InnoDB
         Support: DEFAULT
         Comment: Percona-XtraDB, Supports transactions, row-level locking, and foreign keys
    Transactions: YES
              XA: YES
      Savepoints: YES
    *************************** 10. row ***************************
          Engine: Aria   myisam的增強版
         Support: YES
         Comment: Crash-safe tables with MyISAM heritage 增加了Crash-safe崩潰安全特性,是myisam兼容的存儲引擎
    Transactions: NO
              XA: NO
      Savepoints: NO
    10 rows in set (0.00 sec)
    查看當前默認存儲引擎
    MariaDB [test]> show global variables like '%engine%';
    +---------------------------+--------+
    | Variable_name             | Value  |
    +---------------------------+--------+
    | default_storage_engine    | InnoDB |  默認存儲引擎
    | engine_condition_pushdown | OFF    |
    | storage_engine            | InnoDB |
    +---------------------------+--------+
    3 rows in set (0.00 sec)
    
    
    MySQL 5.1當中基於plugin的方式來支持InnoDB,對於多核特性支持不是很優秀,在5.6以後已經彌補了這一特性,可以支持大量核心的。InnoDB存儲的數據在表空間中,
                Table Space: 表空間可由一個或多個物理文件組成 【表空間相當於是一個黑盒,由InnoDB自行管理的黑盒,是一個文件,但是對於用戶來講看到的可能是一個文件,內部被分割成了多個文件,是一種比文件系統高級、位於工作在文件系統之上的、能夠由存儲引擎自我管理的更高層次的管理機制】但卻屬於同一個表空間
                    是一個文件管理機制:位於程序和文件系統之間的文件獨立管理的中間層
    表空間是InnoDB存儲引擎在使用文件時,爲了方便執行數據文件擴展,而特地實現的自我數據增長擴展管理的一種機制,爲了避免表空間文件過大,對備份不方便,可以把表空間文件分成多個文件,可以實現自動增長。默認情況下,InnoDB將位於同一個數據庫服務器上的所有的InnoDB格式的表數據放在同一個表空間中
    
    在MySQL存放數據的文件下面有
    [root@node3 ~]# ls /mysql/data/ibdata1
    [root@node3 ~]# ls /mysql/data/ibdata1 -lh
    -rw-rw---- 1 mysql mysql 18M Apr  1 10:25 /mysql/data/ibdata1
    ibdata1就是InnoDB的表空間文件,隨着數據的存儲,此文件會動態增長,
    [root@node3 ~]# ls /mysql/data/ib_*
    /mysql/data/ib_logfile0  /mysql/data/ib_logfile1
    [root@node3 ~]# ls /mysql/data/ib_* -lh
    -rw-rw---- 1 mysql mysql 5.0M Apr  1 10:25 /mysql/data/ib_logfile0
    -rw-rw---- 1 mysql mysql 5.0M Apr  1 03:53 /mysql/data/ib_logfile1
    ib_logfile0|1是InnoDB的事務日誌文件
    [root@node3 ~]# ls /mysql/data/hellodb/
    classes.frm  coc.frm  courses.frm  db.opt      scores.MYI    students.MYI  teachers.MYI  toc.MYI
    classes.MYD  coc.MYD  courses.MYD  scores.frm  students.frm  teachers.frm  toc.frm
    classes.MYI  coc.MYI  courses.MYI  scores.MYD  students.MYD  teachers.MYD  toc.MYD
    如果說創建一個數據庫,而數據庫內部存儲引擎都使用InnoDB,則他們都沒有數據文件,需要啓動每表表空間文件的支持
    沒有MYD文件,數據文件在ibdata1中
    [root@node3 ~]# ls /mysql/data/book/
    db.opt  yuwen.frm
    
    InnoDB存儲支持兩種使用風格:
        1、將所有innodb表的數據放置同一個表空間中;
            默認名字:數據目錄下ibdata#;   #是數字
        2、每個表使用自己專用的表空間;【讓MySQL支持每表表空間,啓用】
            默認名字:數據庫目錄下tb_name.ibd;
    建議:爲了使用InnoDB的高級特性,一般把innodb_file_per_table = 1啓用即每表使用單獨表空間機制,也可以編輯配置文件/etc/mysql/my.cnf下mysqld段添加innodb_file_per_table = 1 | ON
    
    MariaDB [test]> show global variables like '%innodb_file%';
    +--------------------------+----------+
    | Variable_name            | Value    |
    +--------------------------+----------+
    | innodb_file_format       | Antelope |
    | innodb_file_format_check | ON       |
    | innodb_file_format_max   | Antelope |
    | innodb_file_per_table    | OFF      |  這裏是OFF,需要改爲ON,MariaDB10是默認ON的
    +--------------------------+----------+
    4 rows in set (0.00 sec)
    MariaDB [test]> set global innodb_file_per_table=1;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [test]> show global variables like '%innodb_file%';
    +--------------------------+----------+
    | Variable_name            | Value    |
    +--------------------------+----------+
    | innodb_file_format       | Antelope |
    | innodb_file_format_check | ON       |
    | innodb_file_format_max   | Antelope |
    | innodb_file_per_table    | ON       |
    +--------------------------+----------+
    4 rows in set (0.00 sec)
    
    MariaDB [test]> create database light;
    Query OK, 1 row affected (0.02 sec)
    
    MariaDB [test]> use light;
    Database changed
    MariaDB [light]> create table jieneng(size tinyint not null,name char(20) not null);
    Query OK, 0 rows affected (0.05 sec)
    
    MariaDB [light]> insert into jieneng (size,name) values (10,'baizhidong'),(9,'riguandong');
    Query OK, 2 rows affected (0.00 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    [root@node3 ~]# ls /mysql/data/light/
    db.opt  jieneng.frm  jieneng.ibd【單獨的表空間文件】
    db.opt是用來記錄該庫的默認字符集編碼和字符集排序規則用的。
                    
        InnoDB基於聚簇索引【聚簇索引有利於基於主鍵查詢時的性能】建立的:基於主鍵索引查詢時,性能較好;
            輔助索引中必須包含主鍵索引,不然輔助索引無法保存數據,因爲輔助索引是指向主鍵的;因此,爲了節約空間,儘可能使用較小的主鍵索引;可以自己創建具有自動增長特性的主鍵如id主鍵
    
        InnoDB支持自適應hash索引;不是顯示的,會自動維護
    
        支持使用事務:
        支持行級鎖
        支持MVCC  多版本併發控制
        支持熱備份
    
        表存儲格式:
            1、將所有innodb表的數據放置同一個表空間中;
                表結構定義:tb_name.frm (數據庫目錄下)
                數據和索引:放在統一的表空間文件中
            2、使用的單表表空間文件
                表結構定義:tb_name.frm
                數據和索引在單獨的文件中:tb_name.ibd
       由於InnoDB中間加了中間層跟存儲相關,所以在實現備份恢復時,不能簡單的把數據文件、結構文件複製到對應的數據目錄下就能識別【備份恢復實現需要專用的工具】,但是myisam可以
    
    MyISAM:
        支持全文索引、壓縮、空間函數(來實現空間索引);
        不支持事務、行級鎖
        崩潰後無法安全恢復
        支持延遲更新索引鍵(delayed_key_write)【修改表以後,不用立即更新索引,當更新完成後,再一併進行索引,使得其性能方面有所提升】
        不支持熱備份
    
        表存儲格式:每張表都有三個文件(位於數據庫目錄下)
            tb_name.frm: 表格式
            tb_name.MYD: 數據
            tb_name.MYI: 索引
    
    其它存儲引擎:
        Memory【內存存儲引擎,數據不是放在磁盤上,而是放在內存中,memory比myisam至少快一個數量級(10倍),在更關注性能時,可以使用memory存儲引擎,memory可以在很多場景下使用比如:用於查找和映射表、用於緩衝週期性的數據表和聚合數據等】: 早期叫HEAP表
            顯式支持hash索引
            無法持久存儲數據
    
        CSV【可以將普通的逗號分隔作爲MySQL表來處理】: 把表數據存儲爲文本文件,字段以逗號分隔;(主要功能是爲了實現在數據庫運行時,拷入或拷出文件的,而且能夠方便的在各數據庫導入數據比如:把MySQL數據保存爲文本文件格式,如果Oracle支持就能夠很容易的導入進去)
            不支持索引
            常用於數據交換的場景
    
        Merge: MyISAM的變種
            將多個MyISAM表合併表示爲一個虛擬表;【表結構需要一樣】
    
        Federated:訪問其它MySQL服務上數據的代理【客戶端訪問federated數據庫服務器時,federated數據庫服務器上沒有數據,而是通過mysql協議到其他的數據庫服務器查找數據並返回的,相當於代理】
            MariaDB上用的FederatedX存儲引擎
    Engine: FEDERATED
     Support: YES
     Comment: FederatedX pluggable storage engine
    
        Blackhole: 沒有任何存儲機制,不會真正存儲任何數據,所以會丟棄所有插入的數據;【在複製架構中會使用到,但是架構也有問題,此種存儲引擎很少使用】
    
        NDB:Cluster   集羣存儲引擎,能夠聯合多個節點上的存儲引擎共同工作,是一種分佈式的無共享的容災的高可用存儲引擎,生產環境下沒在使用
    
    第三方存儲引擎:
        OLTP類【在線事務處理類】:
            XtraDB: InnoDB的改進版
            PBXT:【支持引擎級別的複製、支持外鍵,適合固態硬盤上使用】支持ACID和MVCC
    
            TokuDB: 支持使用分形樹的索引結構,是緩存無關的,即便索引數據超過內存的大小,性能上也不會下降,沒有內存生命週期和內存碎片問題,適用存儲大數據
    
    MySQL中存儲的數據都是以行爲單位的
    
        面向列的存儲的引擎: 按列爲單位進行存儲,適合壓縮等,適用於存儲大數據
            Infobright
            InfiniDB
            LucidDB
    
        社區引擎:
            Aria: 改進的MyISAM 【支持崩潰後安全恢復】
            OQGraph: 支持圖操作 【地圖數據】
            SphinxSE: 爲sphinx全文搜索引擎提供了SQL接口;
            Spider: 可以將數據切分成不同的分區,較透明實現分片功能;
    
    存儲引擎選擇標準?考慮以下因素
        是否需要事務
        是否支持備份:熱備
        是否需要提供崩潰後恢復:
    
            特有的特性: 存儲大數據、是否支持數據分片
    如果說大部分數據都是讀的,則myisam可以是不錯的選擇或者Aria
    如果是在線事務處理的比如訂單處理,建議InnoDB
    數據倉庫最好使用Aria或myisam
    論壇程序:發帖較多、用戶討論比較活躍  InnoDB
    
    InnoDB如何定義表空間的使用風格?
    InnoDB默認情況下將所有表空間數據都放在同一個位置,一般是數據目錄下,可以更改爲其他位置,並定義其工作特性。
        InnoDB存儲引擎的管理:
            innodb_data_file_path:表空間文件的文件名稱及特性【表空間文件的文件名及文件的特性】
                可使用相對(相對於innodb_data_home_dir而言)或絕對路徑;而且可定義多個文件;
                格式爲:innodb_data_file_path = ibdata1:20G;ibdata2:10G;ibdata3:1G:autoextend;【先使用ibdata1文件,當達到20G時,使用ibdata2文件到10G後,使用ibdata3文件可以自動增長autoextend可以自動增長】
            innodb_data_home_dir:表空間的數據文件的存儲位置,省略時表示使用數據目錄(datadir變量定義的位置);
    
            建議設置innodb_file_per_table = ON   獨立的表空間
                缺點:DROP TABLE操作的性能較差;如果想降低DROP TABLE性能差的操作需要啓用:
                innodb_lazy_drop_table = ON  不會立即刪除,會一個一個慢慢刪除
    
    使用InnoDB存儲引擎時,InnoDB存儲引擎有一個重要的內部服務器變量來定義InnoDB使用的緩衝池。
    
        InnoDB緩衝池:  buffer pool
            由InnoDB維護的內存空間:能夠緩存索引及數據   如果某些表非常大,而且某些表訪問的非常頻繁,可以把數據放在內存中直接讀取和寫。
    
                innodb_buffer_pool_size 定義InnoDB緩衝池的大小,應該設多大?通過觀察可用內存值,以及數據是否被頻繁的換進換出,來修改,建議較大,如果緩衝池很大的預熱較慢,因爲緩衝池中要緩衝數據,緩衝池啓動以後,數據好長時間都沒填滿,所以緩衝時,發揮不了效應。如:MySQL平時正常運行,修改一個參數後,重啓了MySQL,頭幾天性能特別差就是因爲緩衝池預熱沒有完成。需要額外使用工具來完成預熱。
    
                如何觀察innodb_buffer_pool_size是否是過大或過小需要通過SHOW ENGINE INNODB STATUS;來判定    顯示當中有很多段組成,獲得狀態數據
    MariaDB [light]> show engine innodb status\G
    *************************** 1. row ***************************
      Type: InnoDB
      Name:
    Status:
    =====================================
    150401 22:28:39 INNODB MONITOR OUTPUT
    =====================================
    Per second averages calculated from the last 8 seconds
    -----------------
    BACKGROUND THREAD
    -----------------
    srv_master_thread loops: 16 1_second, 16 sleeps, 1 10_second, 9 background, 9 flush
    srv_master_thread log flush and writes: 16
    ----------
    SEMAPHORES
    ----------
    OS WAIT ARRAY INFO: reservation count 14, signal count 14
    Mutex spin waits 3, rounds 90, OS waits 3
    RW-shared spins 10, rounds 300, OS waits 10
    RW-excl spins 0, rounds 30, OS waits 1
    Spin rounds per wait: 30.00 mutex, 30.00 RW-shared, 30.00 RW-excl
    --------
    FILE I/O
    --------
    I/O thread 0 state: waiting for completed aio requests (insert buffer thread)
    I/O thread 1 state: waiting for completed aio requests (log thread)
    I/O thread 2 state: waiting for completed aio requests (read thread)
    I/O thread 3 state: waiting for completed aio requests (read thread)
    I/O thread 4 state: waiting for completed aio requests (read thread)
    I/O thread 5 state: waiting for completed aio requests (read thread)
    I/O thread 6 state: waiting for completed aio requests (write thread)
    I/O thread 7 state: waiting for completed aio requests (write thread)
    I/O thread 8 state: waiting for completed aio requests (write thread)
    I/O thread 9 state: waiting for completed aio requests (write thread)
    Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] ,
     ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
    Pending flushes (fsync) log: 0; buffer pool: 0
    0 OS file reads, 402 OS file writes, 37 OS fsyncs
    0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s
    -------------------------------------
    INSERT BUFFER AND ADAPTIVE HASH INDEX
    -------------------------------------
    Ibuf: size 1, free list len 0, seg size 2, 0 merges
    merged operations:
     insert 0, delete mark 0, delete 0
    discarded operations:
     insert 0, delete mark 0, delete 0
    Hash table size 276671, node heap has 1 buffer(s)
    0.00 hash searches/s, 0.00 non-hash searches/s
    ---
    LOG
    ---
    Log sequence number 1605285
    Log flushed up to   1605285
    Last checkpoint at  1605285
    Max checkpoint age    7782360
    Checkpoint age target 7539162
    Modified age          0
    Checkpoint age        0
    0 pending log writes, 0 pending chkp writes
    18 log i/o's done, 0.00 log i/o's/second
    ----------------------
    BUFFER POOL AND MEMORY
    ----------------------
    Total memory allocated 137756672; in additional pool allocated 0
    Total memory allocated by read views 184
    Internal hash tables (constant factor + variable factor)
        Adaptive hash index 2233968     (2213368 + 20600)
        Page hash           139112 (buffer pool 0 only)
        Dictionary cache    601997     (554768 + 47229)
        File system         83968     (82672 + 1296)
        Lock system         333248     (332872 + 376)
        Recovery system     0     (0 + 0)
    Dictionary memory allocated 47229
    Buffer pool size        8191
    Buffer pool size, bytes 134201344
    Free buffers            7875
    Database pages          315
    Old database pages      0
    Modified db pages       0
    Pending reads 0
    Pending writes: LRU 0, flush list 0, single page 0
    Pages made young 0, not young 0
    0.00 youngs/s, 0.00 non-youngs/s
    Pages read 0, created 315, written 347
    0.00 reads/s, 0.00 creates/s, 0.00 writes/s
    No buffer pool page gets since the last printout
    Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s   根據此處
    LRU len: 315, unzip_LRU len: 0   此處
    I/O sum[0]:cur[0], unzip sum[0]:cur[0]
    --------------
    ROW OPERATIONS
    --------------
    0 queries inside InnoDB, 0 queries in queue
    1 read views open inside InnoDB
    0 transactions active inside InnoDB
    0 out of 1000 descriptors used
    ---OLDEST VIEW---
    Normal read view
    Read view low limit trx n:o 300
    Read view up limit trx id 300
    Read view low limit trx id 300
    Read view individually stored trx ids:
    -----------------
    Main thread process no. 24503, id 140154958231296, state: waiting for server activity
    Number of rows inserted 2, updated 0, deleted 0, read 0
    0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s
    ------------
    TRANSACTIONS
    ------------
    Trx id counter 305
    Purge done for trx's n:o < 0 undo n:o < 0
    History list length 0
    LIST OF TRANSACTIONS FOR EACH SESSION:
    ---TRANSACTION 304, not started
    MySQL thread id 11, OS thread handle 0x7f788d68c700, query id 503 localhost root
    show engine innodb status
    ----------------------------
    END OF INNODB MONITOR OUTPUT
    ============================
    
    1 row in set (0.01 sec)             

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章