<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ## 參數文件 MySQL數據庫參數文件的作用和Oracle數據庫的參數文件極其類似忙,不同的是,Oreacle啟動沒有知道參數文件就不能裝載(mount)操作的。MySQL稍微不同,MySQL可以不需要參數文件。這時參數值取決于編譯MySQL是的指定默認值喝源代碼中指定參數的默認值。但是如果找不到mysql架構同樣保存。 數據庫參數可以看成一個鍵/值(key/value)對。 數據庫參數類型分為兩類: (1)動態參數:意味執行中可以進行修改 (2)靜態參數:靜態不能夠進行修改 可以通過set進行動態參數的設置語法: ![](https://box.kancloud.cn/ba59819476975be3460c71f2dc38b4a8_694x76.png) 這里可以看到global 和session關鍵字 它們表明是當前會話還是整個實例的生命周期。 如圖:![](https://box.kancloud.cn/c8abc702eceaa9f7dc54abd16accf0ad_483x41.png) 設置全局值 對本次生命周期有效但參數文件本身沒有修改。 ![](https://box.kancloud.cn/b8e1125ecc6c612fdf1f9279152e1219_691x111.png) ***** ## 日志文件 mysql日志文件有:(1)錯誤日志(error log)、(2)二進制日志(binlog)、(3)慢查詢日志(slow query log) (4) 查詢日志(log) **** ### 錯誤日志 錯誤日志文件對MySQL的啟動、運行、關閉過程進行了記錄。 用戶可以通過命令:` SHOW VARIABKES LIKE 'log_error'\G` ![](https://box.kancloud.cn/73da89baed33036243db5d499bc31aaa_534x90.png) ![](https://box.kancloud.cn/a3226b035df40c36e6568278222b4ab5_455x71.png) 查找錯誤日志文件名 通過命令[root@centos7-w data]# `tail -n 50 centos7-w.err`執行(我沒有成功,顯示沒有找到這個文件) ### 慢查詢日志 慢查詢日志(slow log)可幫助DBA定位可能存在問題的SQL語句.從而進行SQL語句層面的優化。 參數long_query_time參數來設置sql語句的運行時間, 默認為10,代表十秒。 `show variables like 'long_query_time'\G` ![](https://box.kancloud.cn/c7125b70cd722766a451f7d764d4f9a5_590x101.png) MySQL默認情況下并不啟動慢查詢日志,用戶要啟動則設置為:ON 查詢慢查詢是否開啟:`show variables like 'log_slow_queries'\G` (我測試沒有找到該差數) 參數:log_queries_not_using_indexes :表示如果運行的SQL語句沒有使用索引,則MySQL數據庫同意會將這條SQL語句記錄到慢查詢日志文件。 `show variables like 'log_queries_not_using_indexes'\G` ![](https://box.kancloud.cn/5b66c6f3d4ddc597d588f2299b40b1c9_620x87.png) MySQL5.6.5版本開始新增log_throttle_querrottlequeries_not_using_indexes 表示每分鐘允許記錄到slow log且并未使用索引的sql語句次數。默認為0 表示沒有限制。 `show variables like 'log_throttle_querrottlequeries_not_using_indexes'\G` ![](https://box.kancloud.cn/2ffc9c64dec30e76607d03a91fb96d09_764x92.png) mysqldumpslow命令可以簡單直觀的查看: `mysqldumpslow nh122-190-slow.log` 用戶需要查詢執行時間最長的10條sql語句: `mysqldumpslow -s al -n 10 nh122-190-slow.log` mysql5.1 可以將慢查詢插入到數據表中 慢查詢在mysql架構下,名為slow_log 表結構定義如下: `show create table mysql.slow_log\G` ![](https://box.kancloud.cn/c2efa327996bf3995423bc87de8ea455_757x301.png) 參數log_output指定了慢查詢輸出的格式: `show variables like 'log_output'\G` ![](https://box.kancloud.cn/1169acb47b2467d1caeab13597894c37_535x90.png) 設置慢查詢日志表的輸出格式: `set global log_output='table'`; 之后就可以查詢表的數據: ![](https://box.kancloud.cn/9a6ca543e22594fe9ec60dedf5b1ff63_800x337.png) 查看定義可以發現該表使用的是CSV引擎,所以查詢效率并不高,用戶可以把slow_log引擎轉換成MyISAM。提高查詢速度,如果已經啟動慢查詢,會提示錯誤。 `ALTER mysql.slow——log ENGINE=MyISAM;` 所以需要先關閉慢查詢: `SET GLOBAL slow_query_log=off` 再執行一遍: `ALTER mysql.slow——log ENGINE=MyISAM;` 但是如果改成MyISAM會造成額外的開銷。不過好在慢查詢的參數是動態的 所以用戶方便的盡心設置或修改。 ### 查詢日志 通過命令 tail 進行查詢 tail 【文件名】; 默認名稱是主機名.log ### 二進制日志 二進制日志記錄的是數據庫執行更改的所有操作,但是不包括select 和 show 這類操作。 查詢命令 首頁獲取文件名 `show MASTER STATUS\G` ![](https://box.kancloud.cn/6148aeabfa547dd02685e2c621522f12_591x134.png) 查詢:`SHOW BINLOG EVENTS IN 'mysql-bin.000005'\G` ![](https://box.kancloud.cn/abca9c1807529b0d81158a0fdff1e68c_837x365.png) 通過配置參數log-bin[=name]可以啟動二進制日志。 影響二進制日志記錄的信息和行為的參數: (1) max_binlog_size:指定單個二進制日志的最大值,如果超過,產生新的二進制日志文件。mysql5.0默認1G(之前的版本默認1.1G) (2)binlog_cache_size:該事務提交(committed)時直接將緩沖中的二進制日志寫入二進制日志文件,改緩沖大寫有該參數決定。默認為32K,不能設置過大。通過show global status 可以查看 binlog_cache_use、binlog_cache_disk_use的狀態。 (3)sync_binlog:該參數表示每寫緩沖多少次就同步到磁盤。 如果將N設為1 即 sync_binlog=1表示同步寫磁盤的方式來寫二進制日志,這時寫操作不使用操作系統緩沖來寫二進制日志。值為0 如果InnoDB引擎進行復制,可以得到最大的高可用性。不過IO系統會帶來一定的影響。但是該參數值為1,在事務發出COMMIT動作之前,由于該參數值為1,因此會將二進制日志立即寫入磁盤。如果已經寫入二進制日志但是提交沒有發生,此時就會發生宕機,那么下次啟動時,COMMIT操作并沒有發生這個事務就會被回滾掉。但是二進制日志已經記錄了該事務信息,不能被回滾。 這個問題通過參數innodb_support_xa設為1來解決,雖然innodb_support_xa與XA事務有關,但他同事也確保了二進制日志和數據文件的同步 (4)binlog-do-db: (5)binlog-ignore-db: 參數binlog-do-db和binlog-ignore-db表示需要寫入或者忽略寫入哪些庫的日志。默認為空,表示需要同步所有庫的日志到二進制日志, (6)log-slave-update:如果當前戶數看是復制slave角色,它將不會從master取得并執行二進制日志到自己的二進制日志中去,這時候需要寫入的話 需要設置該參數。 如果搭建master=>slave=>slave架構的復制,則必須設置該參數。 (7)binlog-format:該參數是設置二進制日志的格式。mysql5.1版本之后才有的。該參數可設: 1.STATEMENT格式:記錄的是邏輯SQL語句 2.ROW格式:記錄表的行更改情況。如果該參數設置該格式,可以將InnoDB的事務隔離基本設為READ COMMITTED ,以獲得更好的并發性。但是會對磁盤空間要求有一定的增加。 3.MIXED格式:該格式下默認采用STATEMENT格式進行二進制記錄,但是在存儲引擎為NDB做DML操作或者使用了UUID()、USER()、CURRENT_USER()、FOUND_ROWS()、ROW_COUNT()等不確定函數或者使用了INSERT DELAY語句或者用戶定義函數(UDF)或使用臨時表。 此外還有存儲以前的限制如表: ![](https://box.kancloud.cn/1ea0911f99960ac8c1a0ac286cdb071c_828x316.png) binlog-format是動態參數可以在數據庫運行環境下更改。 `SET @@session.binlog_format='ROW';` 也可以全局設置 `SET GLOBAL binlog_format='ROW';` 使用mysqlbinlog查看日志。 ![](https://box.kancloud.cn/f71e7eeb6bf6c02abd6576ed2c1fc156_635x34.png)提示錯誤可以根據以下方法解決問題: 一是在MySQL的配置/etc/my.cnf中將default-character-set=utf8 修改為 character-set-server = utf8,但是這需要重啟MySQL服務,如果你的MySQL服務正在忙,那這樣的代價會比較大。 二是用mysqlbinlog --no-defaults mysql-bin.000004 命令打開 ***** ## 套接字文件 用UNIX域套接字方式鏈接就需要一個套接字文件.該文件可由socket控制。一般在/tmp目錄下 名為 mysql.sock ***** ## pid文件 MySQL啟動時,會將自己的進程ID吸入pid文件。 參數pid——file哦控制 默認位于數據庫目錄下。文件名為主機名.pid ` show variables like 'pid_file'\G` ![](https://box.kancloud.cn/0d052318a01dad2ebca92754c853b0fd_618x93.png) ***** ## 表結構定義文件 frm 為后綴名的文件,這個文件記錄了該表的表結構定義。 frm還用來存放視圖定義。 可以直接用cat命令進行查看`cat 文件名.frm` ***** ## InnoDB存儲引擎文件 ### 表空間文件 InnoDB采用存儲數據按表空間進行存放的設計。默認初始大小為10MB,名為ibdata1的文件。該文件就是表空間文件(tablepace file),參數innodb_data_file_path對其進行設置。 格式如下: `innodb_data_file_path=datafile_spec1[;datafile_spec2].....` ![](https://box.kancloud.cn/e1740ba9f9a235c5af4294cd88e8d876_844x71.png) 如果用多文件來組成表空間。 如果表位于不同的磁盤,磁盤負載被平均,因此可以聽數據庫整體性能。同時文件名后面跟了屬性,表示文件代表為2000M 文件2用完可以制動增長(autoextend)。 設置innodb_data_file_path數之后所有InnoDB存儲引擎表的數據會記錄!共享表空間中。 若設置了參數 innodb_file_per_tabel。則用戶基于InnoDB存儲引擎產生獨立表空間。命名規則為:表名.ibd。 `SHOW VARIABLES LIKE 'innodb_file_per_tabel'\G` 如果innodb_file_per_tabel=NO 則會產生單獨的.ibd獨立表空間文件。 改文件僅存表數據、索引和插入緩沖BITMAP等信息。 文件存儲方式: ![](https://box.kancloud.cn/8d39fd43289883c45527e2c1638d83b8_750x350.png) ## 重做日志文件 在I你弄DB目錄下有ib_logfile0和ib_logfile1的文件。官方稱為日志文件,這個日志文件記錄對于InnoDB存儲引擎單獨事務日志。運行方式是 日志文件1達到最后是會回到日志文件2,如果寫滿在切換日志文件1。 ![](https://box.kancloud.cn/95020a242006deade598ce4abee54486_472x285.png) 參數影響重做日志文件的屬性 (1)innodb_log_file_size 指定日志文件大小 InnoDB 1.2.x總文件大小不得大于4GB,而1.2.x版本擴大512GB。 (2)innodb_log_files_in_group 指定了日志文件組中重做日志文件的數量 默認為2 (3)innodb_mirrored_log_groups指定日志鏡像文件組的數量 默認為1 只表示一個日志文件組沒有鏡像。 (4)innodb_log_group_home_dir 指定了日志文件組所在的路徑 默認./ 顯示配置`SHOW VARIABLES LIKE 'innodb%log%'\G` ![](https://box.kancloud.cn/3846fd673525d93938e096dbea0eed36_550x184.png) 重做日志有一個capacity變量該值代表最后檢查點不能超過這個值,如果超過則必須將緩沖池的臟頁列表的部分藏獨數據頁寫回磁盤,這時會導致用戶線程的阻塞。 ![](https://box.kancloud.cn/6e092e1c847e4aa6a757c4030c3b83db_850x444.png) ![](https://box.kancloud.cn/24a3a168c4e62a1af682a8a4e0ed297d_808x315.png) ![](https://box.kancloud.cn/23e7a54dc3ce7585783fc5736c0d088a_647x220.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看