1.1 架构
mysql架构分成3层,第一层是连接管理层, 第二层是解析优化层,第三层是存储引擎层。
1 连接管理层
连接管理负责与客户端的连接池,客户端与mysql服务端连接后,需要先进行用户、密码的认证。
2 解析优化层
1)查询缓存
mysql会把最近查询的语句和结果缓存到缓冲区中,下次在有相同的语句请求时就会从缓冲区中读取。
缓存失效: 当在缓冲区的语句对应的表,如果发生了delete update insert drop 等修改操作,mysql会将缓存中的语句清除。
2)语法解析
mysql会先检查sql语法是否正确,然后提取其中的表、查询条件到mysql的数据结构中。
3)查询优化
解析后的数据,mysql会进行语法优化,优化的结果是会生成一份执行计划, 用explain命令可以查看优化的执行计划。
3 存储引擎
职能是对数据的存储和提取
1.2 常用存储引擎
不同的存储引擎,决定了不同的存储、提取数据方式, 常用存储引擎如下:
innodb :mysql默认存储引擎,支持事务、行级锁、外键关联
myisam :用于较高的插入和查询速度,但不支持事务和外键, 适用于表只是为了插入和查询数据,此方式性能较高
memory: 数据存储在内存中,可用于临时查询表
查看mysql服务器支持的存储引擎,命令为:
show engines;
建表时如果不指定存储引擎,会使用默认的innodb,如果需要指定存储引擎,如下:
create table 表名() engine=存储引擎名称;
1.3 客户端连接命令
mysql -h127.0.0.1 -P3306 -uroot -p123456
说明:
-h是对应ip
-P是服务端的端口号,可选参数
-u用户名,服务端会开设很多用户,不同的用户权限不同,例如: root用户具有mysql所有数据库读写的权限, 普通用户的只有部分数据库的读写权限;
-p密码