MySQL中的常用存储引擎

MySQL中的常用存储引擎:

1、完整的建表语句

create table `t_x` (
	`tid` int primary key,
	`tname` varchar(255) not null
) ENGINE=InnoDB DEFAULT CHARSET=utf8;	

了解:在MySQL中,凡是标识符是可以用飘号括起来。最好别用,不通用,在Oracle中就报错。

mysql默认使用的存储引擎是InnoDB方式,默认字符集编码是utf8。


2、什么是存储引擎?

存储引擎这个名称只有在mysql中存在。Oracle中有对应的机制,但是不叫存储引擎,就叫“表的存储方式”。

mysql支持很多存储引擎,每一个存储引擎都对应了一种不同的存储方式。

每一个存储引擎都有自己的优缺点,需要在合适的时候选择合适的存储引擎。


3、查看当前mysql支持的引擎
show engines \G;


4、常见的存储引擎

(1)MyISAM存储引擎

	  Engine: MyISAM
     Support: YES
     Comment: MyISAM storage engine
Transactions: NO
  		  XA: NO
  Savepoints: NO

MyISAM这种存储引擎不支持事务。
MyISAM是mysql最常用的存储引擎,但是这种引擎不是默认的。

这种引擎使用三个文件表示每张表:
格式文件—存储表结构的定义(xxx.frm)
数据文件—存储表记录的数据内容(xxx.MYD)
索引文件—存储表上的索引(xxx.MYI)

优点:灵活的auto_increment主键自增机制。可以被压缩,转换成只读表来节省空间。

缺点:不支持事务。


(2)InnoDB存储引擎

 	  Engine: InnoDB
	 Support: DEFAULT
   	 Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
	      XA: YES
  Savepoints: YES

表的结构存储在xxx.frm文件中。

缺点:数据存储在tablespace这样的表空间中(逻辑概念),无法被压缩,无法转换成只读。

优点:支持事务、行级锁,外键等。这种存储引擎让数据的安全得到了保障。
这种InnoDB存储引擎在mysql数据库崩溃之后提供自动恢复机制。


(3)MEMORY存储引擎

	 Engine: MEMORY
     Support: YES
	 Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
	      XA: NO
  Savepoints: NO

以前叫做HEPA引擎,现在叫MEMORY,意思是记忆,速度最快。

表以xxx.frm格式的文件存储在文件中。

优点:
表的数据及索引被存储在内存中,所以读取查询的速度极快。
表级锁机制。

缺点:不支持事务,数据存储在内存中,容易丢失,断电就没了。
不能存储Text或BOLB字段,即不能存大量文本和二进制对象。

猜你喜欢

转载自blog.csdn.net/pipizhen_/article/details/107851488
今日推荐