Mysql存储引擎

MYSQL 存储引擎
1.myql体系结构的组成
连接池:检查是否有空闲的线程和是否有硬件资源分配给线程使用。
sql接口: 把SQL命令传递给mysqld进程。
分析器:检查执行的SQL命令是否语法错误。
优化器:优化执行的SQL命令,以最节省硬件资源的方式运行。
查询缓存:存储客户端曾经查找过的sql记录。
存储引擎:访问表时,决定对表加锁的粒度。
文件系统:存储数据的存储设备(如硬盘)
管理工具:安装mysql数据库服务软件后自带

2分类:
myisam 特点:支持表级锁,不支持事务,事务回滚,外键
表名.frm   #表结构
表名.MYI   #索引
表名.MYD   #表内容

innodb 特点:支持行级锁,支持事务,事务回滚,外键
表名.frm   #表结构
表名.ibd   #表索引和表内容

3.mysql锁机制
3.1锁粒度
表级锁:一次直接对整张表进行加锁
行级锁:只锁定某一行
页级锁:对整个页面进行加锁

3.2锁类型
读锁(共享锁):支持并发度
写锁(互斥锁):是独占锁,上锁期间其他线程不能读表或写表

4.
show variables like '%storage_engine%'; #查看数据库当前使用的存储引擎
show create table 表名; #查看表使用的存储引擎
show table status like "user"\G; # 查看表使用的存储引擎

5.vim /etc/my.cnf
[mysqld]
default-storage-engine="innodb"   #mysql数据库默认存储引擎为innodb
systemctl restart mysqld
6.创建表时指定存储引擎
create table a(id int) engine=innodb;
7.修改以存在表的存储引擎
alter table user engine=innodb;

你可能感兴趣的:(Mysql)