查看已有表的使用存储引擎:
>show create table 表名G;
查看当前数据库的默认存储引擎和可提供的存储引擎:
>show engines;
修改存储引擎:
step1:修改配置文件/etc/my.cnf
default_storage_engine=存储引擎
step2:重启mysqld服务
修改表的存储引擎:
alter table 表名 engine=存储引擎;
创建表时指定存储引擎:
create table 表名 (字段 类型)engine=存储引擎;
常用的存储引擎:
INNODB:支持外键,事务,事务回滚,行级锁
表文件:**.frm(表结构) **.ibd(数据和索引)
MYISAM:不支持外键,事务,事务回滚,表级锁
表文件:**.frm (表结构) **.MYD(表数据)**MYI(索引信息)
锁粒度:
表级锁:一次直接对整张表进行加锁
页级锁:对整个页面进行加锁
行级锁:只锁定某一行
锁类型:show status like "Table_lock%";
读锁:(共享锁)支持并发读
写锁:(排它锁,互斥锁)独占,上锁期间其他的线程不能进行读表和写表。
事务:一次数据库连接到操作到结束的过程(只针对于表中数据)
事务回滚:在访问过程中,任意一步操作失败,都可恢复之前的所有操作。
事务日志:记录对所有innodb存储引擎表的操作 ibdata1:未提交的命令
ib_logfile0,ib_logfile1:已提交完成的命令
事务特性:
A:原子性 整个操作是一个整体,不可分割,要么成功,要么失败
C:一致性 事务操作前后各个终端的数据记录无变化
I:隔离性 事务在未提交之前,各个终端相互隔离,互不影响
D:持久性 数据事务一旦提交,不可恢复
mysql>show variables like "autocommit";
mysql>set autocommit=off; 关闭自动提交,默认为自动提交
mysql>rollback; //回滚
mysql>commit; //提交
在未提交之前各个终端看到的数据是不一样的。只针对于表中的数据
select操作多的表,使用于myisam存储引擎,节约系统资源
insert操作多的表,使用于innodb存储引擎,并发访问量大