標籤:
檔案格式:
frm、MYI、MYD 分別是 MyISAM 表的表結構\索引\資料檔案
一個庫在一個目錄下
不過在 MySQL 4.0 以上版本中,
你可以在 CREATE TABLE 語句中通過使用 DATA DIRECTORY="directory" 或 INDEX DIRECTORY="directory",你可以指定儲存引擎在什麼地方存放它的表和索引檔案。注意,目錄必須以一個完整路徑指定(不是相對路徑)。 這僅僅工作於 MySQL 4.0 中的 MyISAM 表,並且你沒有使用 --skip-symlink 選項。查看章節 5.6.1.2 對錶使用符號連結。
記錄檔可以是一個檔案,
也可以是多個檔案,在每次系統啟動時產生一個,副檔名是 .000 ,依次遞增
使用一個檔案,還是多個記錄檔,在系統設定檔 my.cnf 或 my.ini 中的配置項確定
日誌:
登入mysql終端
記錄檔路徑
mysql> show variables like ‘general_log_file‘;
+------------------+------------------------------------+
| Variable_name | Value |
+------------------+------------------------------------+
| general_log_file | /usr/local/mysql/data/localhost.log |
+------------------+------------------------------------+
1 row in set (0.00 sec)
錯誤記錄檔檔案路徑
mysql> show variables like ‘log_error‘;
+---------------+------------------------------------+
| Variable_name | Value |
+---------------+------------------------------------+
| log_error | /usr/local/mysql/data/localhost.err |
+---------------+------------------------------------+
1 row in set (0.00 sec)
慢查詢記錄檔路徑
mysql> show variables like ‘slow_query_log_file‘;
+---------------------+-----------------------------------------+
| Variable_name | Value |
+---------------------+-----------------------------------------+
| slow_query_log_file | /usr/local/mysql/data/localhost-slow.log |
+---------------------+-----------------------------------------+
1 row in set (0.01 sec)
mysql有以下幾種日誌:
錯誤記錄檔: -log-err
查詢日誌: -log
慢查詢日誌: -log-slow-queries
更新日誌: -log-update
二進位日誌: -log-bin
是否啟用了日誌
mysql>show variables like ‘log_%‘;
怎樣知道當前的日誌
mysql> show master status;
顯示二進制日誌數目
mysql> show master logs;
看二進位記錄檔用mysqlbinlog
shell>mysqlbinlog mail-bin.000001
或者shell>mysqlbinlog mail-bin.000001 | tail
mysqlbinlog localhost-bin.000202 > new_file_name.log命令,將目標檔案儲存為記錄檔,可指定儲存路徑下 有個小技巧跟大家介紹下,我在準備轉換的時候發現記錄檔有2G多,尋思著為什麼mysql為什麼不把日誌按日誌週期性分多個檔案放呢。結果發現mysql有個更好的方法,可以通過時間參數擷取某個時間段的資料,例子如下:mysqlbinlog --start-datetime="2010-11-20 00:00:00" --stop-datetime="2010-11-21 00:00:00"
在設定檔中指定log的輸出位置.
Windows:Windows 的設定檔為 my.ini,一般在 MySQL 的安裝目錄下或者 c:\Windows 下。
Linux:Linux 的設定檔為 my.cnf ,一般在 /etc 下。
在linux下:
Sql代碼
- # 在[mysqld] 中輸入
- #log
- log-error=/usr/local/mysql/log/error.log
- log=/usr/local/mysql/log/mysql.log
- long_query_time=2
- log-slow-queries= /usr/local/mysql/log/slowquery.log
windows下:
Sql代碼
- # 在[mysqld] 中輸入
- #log
- log-error="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/error.log"
- log="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/mysql.log"
- long_query_time=2
- log-slow-queries= "E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/slowquery.log"
開啟慢查詢
long_query_time =2 --是指執行超過多久的sql會被log下來,這裡是2秒
log-slow-queries= /usr/local/mysql/log/slowquery.log --將查詢返回較慢的語句進行記錄
log-queries-not-using-indexes = nouseindex.log --就是字面意思,log下來沒有使用索引的query
log=mylog.log --對所有執行語句進行記錄
MySQL 知識點