1、mysql的数据文件存放在data目录,每个数据库有一个对应的目录。
2、对于MyISAM引擎,每个表有三个文件:
.frm 是元数据文件,保存表结构信息
.myd 【my data】是表数据文件,保存表的数据,也就是一组记录
.myi 【my index】是表索引文件,保存表的索引信息,一个表上的所有索引都保存在这个文件
3、对于INNODB引擎,每个表也都有一个对应的.frm文件,用于保存表结构信息。
默认情况下,INNODB所有表的数据和索引都保存在 ibdata1 文件中。
这会导致文件ibdata1非常大,怎么解决?
4、可以设置每个表使用一个独立的文件,来保存自身的数据和索引,只需要在mysql的配置中增加配置项
innodb_file_per_table
可以看到每个表都有一个对应的.ibd文件
5、对于已经存在比较大的ibdata1,怎么办?
先把数据导出来,删除ibdata1文件,配置成innodb_file_per_table,然后还原数据
6、对于INNODB引擎,还需要记录事务,因此有事务日志。
INNODB有若干个 事务日志组,一个事务日志组至少有两个事务日志文件,这些事务日志文件大小相同,预分配好内存,
文件的内存都是二进制0,INNODB会轮巡写事务日志文件。
默认情况下,只有一个事务日志组,事务日志组有两个文件,分别是ib_logfile0 和 ib_logfile1,
初始的时候,ib_logfile0 和 ib_logfile1文件的内容都是二进制0
7、注意:事务日志和二进制日志的区别。
事务日志是INNODB引擎记录事务,为了事务的前滚和后滚。
二进制日志(binlog)所有的引擎都会记录,可以认为记录mysql的操作,发给从库,在从库上重放,达到数据同步。
8、.err是错误日志文件,记录mysql的出错信息
9、.pid是保存进程ID,停止mysql服务,这个文件就会自动删除。
10、对于查询日志,需要配置
log=C:\ProgramData\MySQL\MySQL Server 5.5\data\log.txt
11、对于慢查询日志,需要配置
long_query_time=0.1
log-slow-queries=C:\ProgramData\MySQL\MySQL Server 5.5\data/slowquery.txt
特别注意:\s会被转义,因此需要使用C:\ProgramData\MySQL\MySQL Server 5.5\data/slowquery.txt
或者C:\ProgramData\MySQL\MySQL Server 5.5\data\\slowquery.txt
12、通过show variables like '%log%'; 可以看到各种日志文件的配置信息,如下:
mysql> show variables like '%log%';
+-----------------------------------------+-------------------------------------------------------------+
| Variable_name | Value |
+-----------------------------------------+-------------------------------------------------------------+
| back_log | 50 |
| binlog_cache_size | 32768 |
| binlog_direct_non_transactional_updates | OFF |
| binlog_format | STATEMENT |
| binlog_stmt_cache_size | 32768 |
| expire_logs_days | 0 |
| general_log | ON |
| general_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\data\log.txt |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_locks_unsafe_for_binlog | OFF |
| innodb_log_buffer_size | 2097152 |
| innodb_log_file_size | 55574528 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | .\ |
| innodb_mirrored_log_groups | 1 |
| log | ON |
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| log_error | C:\ProgramData\MySQL\MySQL Server 5.5\Data\pvs256971713.err |
| log_output | FILE |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | ON |
| log_warnings | 1 |
| max_binlog_cache_size | 18446744073709547520 |
| max_binlog_size | 1073741824 |
| max_binlog_stmt_cache_size | 18446744073709547520 |
| max_relay_log_size | 0 |
| relay_log | |
| relay_log_index | |
| relay_log_info_file | relay-log.info |
| relay_log_purge | ON |
| relay_log_recovery | OFF |
| relay_log_space_limit | 0 |
| slow_query_log | ON |
| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.5\data/slowquery.txt |
| sql_log_bin | ON |
| sql_log_off | OFF |
| sync_binlog | 0 |
| sync_relay_log | 0 |
| sync_relay_log_info | 0 |
+-----------------------------------------+-------------------------------------------------------------+
以及慢查询的时间设置
mysql> show variables like '%long%';
+---------------------------------------------------+----------+
| Variable_name | Value |
+---------------------------------------------------+----------+
| long_query_time | 0.100000 |
| max_long_data_size | 1048576 |
| performance_schema_events_waits_history_long_size | 10000 |
+---------------------------------------------------+----------+