之前面试的时候,一个面试的人员问我mysql有哪些引擎,我说两种,当时因为对引擎的了解不多
现在想想自己真的是知道的还是太少
mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表
1.如何查看:
在mysql>提示符下搞入show engines;
字段 Support为:Default表示默认存储引擎
InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
2.查看当前mysql默认的存储引擎
mysql> show variables like '%storage_engine%';
3.查看某张表对应的引擎:
mysql>show create table 表名;
4.mysql查看是否开启自动提交
show variables like '%autocommit%';
value的值为ON,表示autocommit开启。OFF表示autocommit关闭。
5.查询mysql数据库中正在执行的事务
mysql>SELECT * FROM information_schema.INNODB_TRX
6.查询mysql中锁住的事务:
mysql>SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
7.查询mysql中正在等待锁的进程:
mysql>SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行。换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的。如果在事务的任何操作失败,则整个事务将失败
8.在导入批量导入数据的时候,如果要实时的看到导入的办件记录,可以对事务进行开启和关闭的方式