mysql—表类型和存储引擎

本文介绍了MySQL数据库中的不同存储引擎,包括MyISAM、InnoDB和Memory。MyISAM适合简单CRUD操作,不支持事务;InnoDB提供事务安全,支持外键和行级锁;Memory存储引擎数据存于内存,速度极快但不持久。选择存储引擎应根据应用需求,如需事务支持则选择InnoDB,追求速度则考虑MyISAM或Memory。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本次博客带领大家学习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。
  • 主要的存储引擎/表类型特点:
    请添加图片描述
  • 细节说明:
    1. MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。
    2. InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
    3. MEMORY存储引擎使用存在内存中的内容来创建表。每个MEMORY表只实际对应一个磁盘文件。MEMORY类型的表访问非常快,因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦MySQL服务关闭,表中的数据就会丢失掉,表的结构还在。
  • 如何选择表的存储引擎:
    1. 如果你的应用不需要事务,处理的只是基本的CRUD操作,那么MyISAM是不二选择,速度快。
    2. 如果需要支持事务,选择InnoDB。
    3. Memory 存储引擎就是将数据存储在内存中,由于没有磁盘I/O的等待,速度极快。但由于是内存存储引擎,所做的任何修改在服务器重启后都将消失。
  • 修改存储引擎
alter table `表名` ENGINE = 存储引擎;
-- innodb 存储引擎
-- 1.支持事务 2. 支持外键 3.支持行级锁

-- myisam 存储引擎
CREATE TABLE t28(
	id INT,
	`name` VARCHAR(32)) ENGINE MYISAM
-- 1.添加速度快 2.不支持外键和事务 3.支持表级锁

START TRANSACTION;
SAVEPOINT t1;
INSERT INTO t28 VALUES(1,'jack');
SELECT * FROM t28;
ROLLBACK TO t1;

-- memory 存储引擎
-- 1.数据存储在内存中 2.执行速度很快(没有IO读写) 3.默认支持索引(hash表)

CREATE TABLE t29(
	id INT,
	`name` VARCHAR(32)) ENGINE MEMORY
	
INSERT INTO t29 VALUES(1,'jack'),(2,'tom'),(3,'ld');

SELECT * FROM t29;

-- 指令修改存储引擎
ALTER TABLE t29 ENGINE = INNODB;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值