(笔记整理自b站马士兵教育课程)
MYSQL总体分为服务层和存储引擎层。
一、服务层
功能:
1、连接:管理连接,权限验证。
2、解析器:词法分析,语法分析。
3、优化器:执行计划生成,索引选择。
4、执行器:操作引擎,返回结果。
二、存储引擎层
功能:存储数据,提供读写接口。
三、零碎知识点
mysql是单进程多线程的架构
show global status like '%Threads%'
show global VARIABLES like 'wait_timeout'
#非交互式的超时时间,比如JDBC程序
show global VARIABLES like 'interactive_timeout'
#交互式的超时时间,比如数据库工具
查询出的默认时间都是8h。
show variables like 'datadir'
#查询数据库文件存储的磁盘位置
MYSQL允许的最大连接数,默认是151,最小可以设置为1,最大可以设置为100000。
有一个通用公式,服务器数据库的占用内存大小/8M。例如服务器数据库占用8G,连接数就是8G/8M=1000。
在查询语句中,加上global才是全局级别,否则是会话级别。
我们怎样永久修改MYSQL的配置呢,在linux中,首先将my.config移动到etc中,然后在my.config中加入set auto.commit = true。Windows中在my.ini后添加。
缓存的缺点:一行失效,全部失效,8.0以上已经默认没有缓存。
MYSQL5.5.5及之前版本默认存储引擎是myisam,之后是innodb。
MYISAM:仅支持表锁定,可用于多读场景。
InnoDB:MVCC,支持行锁定。
Memory:数据存储在内存,访问速度快,持久化较差。