基础结构
Connection:这一块其实主要是其他语言的连接,并不属于MySQL本身;主要是其他语言对于MySQL的连接操作的工具比如PHP中的:pdo,mysqli或者 Navicat for MySQL
SQL层:功能主要包括权限判断,SQL解析功能和查询缓存处理等。
- 链接/线程处理:客户端通过 连接/线程层 来连接MySQL数据库,连接/线程层主要用来处理客户端的请求、身份验证和数据库安全性验证等。
- 查询缓存和查询分析器是SQL层的核心部分,其中主要涉及查询的解析、优化、缓存、以及所有内置的函数,存储过程,触发器,视图等功能。
- 优化器主要负责存储和获取所有存储在MySQL中的数据。
MySQL物理文件类型
日志文件主要包括:
- 错误日志(ErrorLog)、
- 二进制日志(Binary Log)、
- 事务日志(InnoDB redo Log & undo Log)、
- 慢查询日志(Slow Query Log)、、
- 查询日志(Query Log)
数据库文件:
- ‘.frm’文件
- ‘.MYD’文件 myisam 数据文件
- ‘.MYI’文件 myisam 索引文件
- ‘.ibd’文件(独享)和’.ibdata’文件(共享) innodb 数据和索引存放
其他配置文件
- 系统配置文件(my.ini或者my.cnf)
- pid,err文件
- socket文件
错误日志
show global variables like '%log_error%';
二进制日志
show global variables like '%log_bin%'
;`
作用
- 以二进制形式记录更改数据库的SQL语句(insert,update,delete,create,drop,alter等)。
- 用于MySQL主从复制。
- 增量数据备份及恢复
事务日志(InnoDB)
查看存储引擎: show engines ;
InnoDB引擎在线Redo日志记录了InnoDB所做的所有物理变更和事务信息。通过Redo日志和Undo信息,InnoDB大大地加强了事务的安全性。InnDB在线Redo 日志默认存放在data命令下,可通过设置innodb_log_griyo_home_dir选项来更改日志文件存放位置,通过innodb_log_files_in_group选项来说何止日志的数量
使用事务日志,存储引擎在修改表的数据时只需要修改其内存拷贝,再把修改行为记录到持久在硬盘上的事务日志中,而不用每次都将修改的数据本身持久到磁 盘。事务日志采用追加的方式,因此写日志的操作是磁盘上一小块区域内的顺序I/O,而不像随机I/O需要在磁盘的多个地方移动磁头,所以采用事务日志的方式 相对来说要快得多。事务日志持久以后,内存中被修改的数据在后台可以慢慢的刷回到磁盘。目前大多数的存储引擎都是这样实现的。
慢查询日志
慢查询日志是值所有SQL执行的实际超过long_query_time变量的语句和达到min_examined_row_limit条举例的语句。用户可以针对这部分语句性能调 优。慢查询日志通过设置log-slow_queries[=file_name]选项开启后,将记录日志所在的路劲和名称。MySQL系统默认的慢查询日志的文件名是show.log,默认目 录是data目录。
命令:1
2
3
4
5
6-- 查看long_query_time设置时间
show global variables like '%long%';
-- 查看具体信息
-- slow_query_log: off关闭状态 on开启状态
-- slow_query_log_file 慢查询日志存放地点
show variables like "%slow%" ;
mysql性能测试
1 | show status |