MySQL存储引擎(了解)

1:查看建表sql语句:

show create table t_student1;

2:完整的建表语句:

CREATE TABLE `t_student1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `sex` char(1) DEFAULT '1',
  `classno` int(11) DEFAULT NULL,
  `birth` char(10) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `classno` (`classno`),
  FOREIGN KEY (`classno`) REFERENCES `t_class` (`cno`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 |

注意:在mysql中,凡是标识符是可以使用飘号括起来的。不通用。

mysql默认使用的存储引擎是InnoDB方式。
默认采用的字符集是UTF8。

3:什么是存储引擎呢?

存储引擎这个名字只有在mysql中存在。(Oracle中有对应的机制,但是不叫做存储引擎。Oracle中没有特殊的名字,就是”表的存储方式”)。

mysql支持很多存储引擎,每一个存储引擎都对应了一种不同的存储方式。每一个存储引擎都有自己的优缺点,需要在合适的时机选择合适的存储引擎。

4:查看当前mysql支持的存储引擎?

show engines \G

当前使用的mysql版本是5.5.36,支持9个存储引擎。

5:常见的存储引擎?

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

MyISAM是mysql最常用的存储引擎,但是这种引擎不是默认的。
MyISAM采用三个文件组织一张表:
xxx.frm(存储格式的文件)
xxx.myd(存储表中数据的文件)
xxx.myi(存储表中索引的文件)
优点:可被压缩,节省存储空间,并且可以转换为只读表,提高检索效率。
缺点:不支持事务。
------------------------------------------------------------------------------

Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES
优点:支持事务,行级锁,外键等。这种存储引擎数据的安全得到保障。

表的结构存储在:xxx.frm文件中
数据存储在tablespace这样的表空间中(逻辑概念),无法被压缩,无法转换成只读。
这种InnoDB存储引擎在mysql数据库崩溃之后提供自动恢复机制。
InnoDB支持级联删除和级联更新。
------------------------------------------------------------------------------

Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
缺点:不支持事务,数据容易丢失,因为所有数据和索引都是存储在内存中。

优点:查询速度最快。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章