1、查看引擎
show engines\G,show engine //查看可用的存储引擎
show create table 表名\G //查看表使用的引擎
2、修改默认存储引擎
vim /etc/my.cnf
--->[mysqld]
default-storage-engine=innodb/myisam
l 修改表使用的存储引擎,或 建表时指定表使用的存储引擎
alter table 表 engine=存储引擎名;
create table 表(字段列表)engine=存储引擎名;
3、常用的存储引擎
innodb
支持事务 、 事务回滚 、行级锁 、外键
存储方式: 一个表对应2个存储文件
表名.frm 表结构
表名.ibd 数据和索引
myisam
不支持事务 、 事务回滚、外键
支持表级锁
存储方式: 一个表对应3个存储文件
表名.frm 表结构
表名.MYD 数据
表名.MYI 索引
4、事务:对数据库服务的访问过程(连接数据库服务器 操作数据 断开连 接)
事务回滚 : 在事务执行过程中,任何一步操作失败,都会恢复之前的所有操 作。
锁粒度:
表级锁(myisam)给整张表加锁
行级锁 (innodb) 只给表中当前被操作行加锁
锁的作用:解决对表的并发访问冲突问题。
锁类型
读锁 (共享锁)
写锁 (互斥锁)
建表时如何决定表使用那种存储引擎
执行写操作多的表适合使用innodb存储引擎,可以并发访问。
执行查操作多的表适合使用myisam存储引擎,可以节省系统资源
5、事务特性 (ACID)
Atomic :原子性 – 事务的整个操作是一个整体,不可分割,要么全部 成功, 要么全部失败。
Consistency : 一致性 – 事务操作的前后,表中的记录没有变化。
Isolation :隔离性 – 事务操作是相互隔离不受影响的。
Durability :持久性 – 数据一旦提交,不可改变,永久改变表数据
mysql> show variables like "autocommit"; // 查看提交状态
mysql> set autocommit=off; // 关闭自动提交
mysql> rollback ; // 数据回滚
mysql> commit; // 提交数据