《mysql性能調優與架構設計》筆記: 一mysql 架構組成

2.1mysql物理文件組成mysql

    2.1.1日誌文件:web

        1,查看mysql配置文件:mysql --verbose --help | grep -A 1 'Default options';sql

        1,錯誤日誌:--log-error[=file_name] 指定錯誤日誌位置數據庫

               

        2,二進制日誌:安全

                --log-bin[=file_name] 若是未指定file_name默認在數據目錄下mysql-bin.****服務器

               

                --max_binlog_size:設置 binlog 的最大存儲上限,當日志達到該上限時,MySQL 會 從新建立一個日誌開始繼續記錄。不過偶爾也有超出該設置的 binlog 產生,通常都是由於 在即將達到上限時,產生了一個較大的事務,爲了保證事務安全,MySQL 不會將同一個事務分開記錄到兩個 binlog 中。架構

                --binlog-do-db=db_name:參數明確告訴 MySQL,須要對某個(db_name)數據庫記 錄 binlog,若是有了 「--binlog-do-db=db_name」參數的顯式指定, MySQL 會忽略針對其餘 數據庫執行的 query,而僅僅記錄針對指定數據庫執行的 querysocket

                --binlog-ignore-db=db_name:與「--binlog-do-db=db_name」徹底相反,它顯式指 定忽略某個(db_name)數據庫的 binlog 記錄,當指定了這個參數以後,MySQL 會記錄指定 數據庫之外全部的數據庫的 binlog。工具

                注意:上面兩個參數只的是user dbname,而不是查詢時候的sql語句優化

        3,查詢日誌:query log  --log[=file_name]來打開該功能  配置文件:

               

                會記錄全部query,因此體積很大,特殊要求時候開啓

        4,慢查詢日誌:--log-slow-queries[=file_name]

               

        5,慢查詢日誌分析工具:mysqlslowdump

               

            

            

-s t 按總query time排序 -s at 按平均query time排序
-s l 按總locktime排序 -s al 按平均lock time排序
-s s 按總row send排序 -s as 按平均row send排序
-s c 按count排序 -- --

    2.1.2數據文件

        1,.frm文件:與表相關的元數據信息都存放在此文件中,包括表結構的定義信息等。每種存儲引擎都有此文件

        2,.MYD:文件是 MyISAM 存儲引擎專用,存放 MyISAM 表的數據。每個 MyISAM 表都會 有一個 「.MYD」文件與之對應,一樣存放於所屬數據庫的文件夾下,和 「.frm」文件在一塊兒 

        3,.MYI:文件也是專屬於 MyISAM 存儲引擎的,主要存放 MyISAM 表的索引相關信息。 對 於 MyISAM 存儲來講,能夠被 cache 的內容主要就是來於「.MYI」文件中。每個 MyISAM 表對應一個「.MYI」文件,存放於位置和「.frm」以及「.MYD」同樣。

    2.1.3Replication相關文件:

        1,master.info文件

        2,relay log 和 relay log index

        3,relay-log.info文件

    2.1.4其它文件:

        1,system config file /etc/my.cnf

        2,pid file 3,socket file

2.2Mysql server 系統架構:

    2.2.1邏輯模塊組成

        

2.3 MySQL自帶工具使用

    1,mysql 

            1,mysql --help

            //恢復用這個語句就行了。

            2, mysql -uroot -p watch07 < D:/mysql.bak.20140724 --default-character-set=utf8

    2,mysqladmin

            1,mysqladmin -u sky -ppwd -h localhost ping

            2,mysqladmin -u sky -ppwd -h localhost status

            

            3,查看服務器當前連接線程信息:

            

    3,mysqldump:

            mysqldump [OPTIONS] database [tables]

            mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3]...

            mysqldump [OPTIONS] --all-databases [OPTIONS]

            

            1》myisam 引擎,能夠直接拷貝數據表。

            2》mysqldump:數據導出爲SQL語句

            3》select * from table1 into outfile '/tmp/table1.txt';

            4》恢復:load data infile '/tmp/table1.txt' into table table1;

    4,mysqlimport

                mysqlimport [OPTIONS] database textfile ...

                mysqlimport 程序是一個將以特定格式存放的文本數據(如經過「select * into  OUTFILE from ...」所生成的數據文件)導入到指定的 MySQL Server 中的工具程序,好比 將一個標準的 csv 文件導入到某指定數據庫的指定表中。mysqlimport 工具實際上也只是 「load data infile」命令的一個包裝實現。

    5,mysqlbinlog

            mysqlbinlog [OPTIONS] log-files

    6,mysqlcheck:

            mysqlcheck [OPTIONS] database [tables]

            mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...]

            mysqlcheck [OPTIONS] --all-databases

            mysqlcheck 工具程序能夠檢查(check),修復( repair),分析( analyze)和優化 (optimize)MySQL Server 中的表,但並非全部的存儲引擎都支持這裏全部的四個功能, 像 Innodb 就不支持修復功能。實際上, mysqlcheck 程序的這四個功能均可以經過 mysql 連 接登陸到 MySQL Server 以後來執行相應命令完成徹底相同的任務。

    7,myisamchk:myisamchk [OPTIONS] tables[.MYI]

    8,myisampack

    9,mysqlhotcopy

相關文章
相關標籤/搜索