標籤:
2.1mysql物理檔案組成
2.1.1記錄檔:
1,查看mysql設定檔:mysql --verbose --help | grep -A 1 ‘Default options‘;
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,而僅僅記錄針對指定資料庫執行的 query
--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
《mysql效能調優與架構設計》筆記: 一mysql 架構組成