【MySQL】Linux安装和逻辑架构
linux下安装mysql
mysql的存放位置 /var/lib/mysql/
mysql.server和配置文件存放位置 /usr/share/mysql
mysql的相关命令存放位置 /usr/bin
启停相关脚本 /etc/init.d/mysql
配置文件存放位置 /etc/my.cnf
相关文件
log-bin是二进制日志用于主从复制
log-error是错误日志,默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息。
log是查询日志:默认关闭,记录查询的sql语句
数据文件
- frm文件,存放表结构
- myd文件,存放表数据
- myi文件,存放表索引
MySQL逻辑架构
连接层:最上层是客户端和连接服务,包含本地sock通信和大多数基于客户端、服务端工具是实现的tcp/ip的通信。主要完成一些类似于连接处理、授权认证及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以是实现基于SSL的安全连接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。
服务层:主要完成核心服务人物:SQL接口、缓存查询、SQL分析和优化及部分内置函数的执行。所有跨存储引擎功能也在这一层实现,如过程、函数等。在服务层会解析查询并创建相应的内部解析树,并完成优化,例如确定查询表的顺序,是否利用索引等,最后生成相应的执行操作。对于select语句还会查询内部缓存,如果缓存足够大,可以在大量读操作环境中提升性能。
引擎层:存储引擎负责MySQL的存储和提取,服务器通过API和存储引擎进行通信,不同的存储引擎功能不同,可以根据需要选取。常用MyISAM和InnoDB。
存储层:主要将数据存储在运行于裸设备的文件系统上,并完成与存储引擎的交互。