Mysql表类型和存储引擎

本文详细介绍了MySQL的表类型和存储引擎,包括MyISAM、InnoDB、Memory等的特性比较,以及如何根据应用需求选择合适的引擎。通过实例展示了MyISAM和Memory表的创建、事务处理和存储引擎修改。
摘要由CSDN通过智能技术生成

目录

 Mysql表类型和存储引擎

基本介绍

细节说明

实例1:

实例2:

如何选择表的存储引擎

修改存储引擎


 Mysql表类型和存储引擎

基本介绍

1. MySQL的表类型由存储引擎(Storage Engines)决定,主要包括MyISAM、innoDB、Memory等。

2. MySQL数据表主要支持六种类型,分别是:CSV、Memory、ARCHIVE、MRG MYISAM、MYISAM、InnoBDB.

3. 这六种又分为两类,一类是”事务安全型”(transaction-safe),比如:InnoDB:其余都属于第二类,称为”非事务安全型”(non-transaction-safe)[mysiam和memory].

 查看存储引擎

主要的存储引擎/表特点

特点MyisamInnoDBMemoryArchive
批量插入的难度高 非常高
事务安全支持
全文索引支持
锁机制表锁行锁表锁行锁
储存限制没有64TB没有
树索引支持支持支持没有
哈希案引支持支持
集群索引支持
数据缓存支持支持
索引缓存支持支持支持
数据可压缩支持支持
空间使用N/A非常低
内存使用低 中等
支持外键支持

细节说明

1.MyISAM不支持事务、也不支持外键,但其访问速度快,对事务整性没有要求
2InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
3.MEMORY存储引擎使用存在内存中的内容来创建表。每个MEMORY表只实际对应一个磁盘文件。MEMORY类型的表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦服务关闭,表中的数据就会丢失掉,表的结构还在。

实例1:

创建储存引擎为Myisam的表

create table t28(
	id int,
	`name` varchar(32)
)engine myisam

开启事务并插入数据

start transaction
insert into t28 
	values(1,'jack')

查询表

SELECT * FROM t28

现在进行回滚

此时可以看见,系统报错,原因使用myisqm储存引擎创建的表不支持事务安全

实例2:

创建储存引擎为memory的表

CREATE TABLE t29(
	id INT,
	`name` VARCHAR(32)
)ENGINE Memory

插入数据

INSERT INTO t29
	VALUES(1,'jack')

此时关闭mysql服务并再次开启

再次查询数据和表结构

此时可以发现插入的数据没了,但创建的表及其表结构都还在

如何选择表的存储引擎

1. 如果你的应用不需要事务,处理的只是基本的CRUD操作,那么MyISAM是不二选择,速度快
2. 如果需要支持事务,选择InnoDB.
3. Memory 存储引擎就是将数据存储在内存中,由于没有磁盘I/O的等待,速度极快。但由于是内存存储引擎,所做的任何修改在服务器重启后都将消失。(经典用法 用户的在线状态().)

修改存储引擎

语法

ALTER TABLE '表名' ENGINE = 储存引擎;

  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值