MySQL体系结构
概念介绍
数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据;
MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。
MySQL的核心就是存储引擎;
层次结构
客户端:接入方,支持多协议,常见的是JDBC/ODBC
mysqlserver:要运行sql必须要启动mysql的服务
存储引擎
连接器
频繁产生对接、断开,不可能每次执行一次SQL就连接断开,于是出现连接池,可以帮助保持一段时间连接
druid:提供了监控的功能,springboot里面默认集成了hekarui连接池
分析器
SQL语句实际上就是字符串,只不过mysql拿到之后做了一些处理,把where、from等关键字拿出来之后截取对应的字符串,验证有没有问题(词法分析)
执行的过程就是语法分析,这个语法分析最后会变成AST(语法树)
优化器
mysql调优、jvm调优等等
优化器自动优化,通过“explain select STRATGHT_JOIN”可以查看SQL的执行方式
执行器
优化器优化好sql之后,选择好具体的执行过程,行器根据选择执行过程之后去存储引擎取数据或者过滤数据,在返回给客户端
常用操作
-- 查询当前数据库支持的存储引擎: show engines; -- 查看默认存储引擎: show variables like ‘%storage_engine%’; -- 查看表所使用的引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎): show create table user; -- 创建表时指定存储引擎: create table(...) engine=MyISAM; -- 修改数据库引擎 alter table user engine = INNODB; alter table user engine = MyISAM;
修改MySQL默认存储引擎方法
1. 关闭mysql服务
2. mysql安装目录下的my.ini文件:
3.找到default-storage-engine=INNODB 改为目标引擎,
如:default-storage-engine=MYISAM
4. 启动mysql服务