MySQL高阶---存储引擎、索引、锁

存储引擎

1. 介绍

MySQL体系结构

MySQL数据库使用不同的机制存取表文件,包括存储方式、引技巧、锁定水平等不同的功能。这些不同的技术以及配套的功能称为存储引擎。
Oracle、SqlServer等数据库只有一种存储引擎。而MySQL针对不同的需求,配置不同的存储引擎,就会让数据库采取不同处理数据的方式和扩展功能。
MySQL支持的存储引擎有很多,常用的有三种:InnoDB、MyISAM、MEMORY。
特性对比

  • MyISAM存储引擎:访问快,不支持事务和外键操作。
  • InnoDB存储引擎:支持事务和外键操作,支持并发控制,占用磁盘空间大。(MySQL5.5版本后默认)
  • MEMORY存储引擎:内存存储,速度快,不安全。适合小量快速访问的数据。 

存储引擎介绍

 2. 存储引擎的操作

查询数据库支持的存储引擎
        SHOW ENGINES;
查询某个数据库中所有数据表的存储引擎
        SHOW TABLE STATUS FROM 数据库名称;
查询某个数据库中某个数据表的存储引擎
        SHOW TABLE STATUS FROM 数据库名称WHERE NAME=数据表名称;
创建数据表,指定存储引擎
        CREAT ETABLE 表名(
                列名,数据类型,
                ...
        )ENGINE=引擎名称;
修改数据表的存储引擎
        ALTER TABLE 表名 ENGINE=引擎名称

/*
	查询数据库支持的存储引擎
	SHOW ENGINES;
*/
-- 查询数据库支持的存储引擎
SHOW ENGINES;
/*
	查询某个数据库中所有数据表的存储引擎
	SHOW TABLE STATUS FROM 数据库名称;
*/
-- 查询db4数据库所有表的存储引擎
SHOW TABLE STATUS FROM db4;
/*
	查询某个数据库中某个表的存储引擎
	SHOW TABLE STATUS FROM 数据库名称 WHERE NAME = '数据表名称';
*/
-- 查看db4数据库中category表的存储引擎
SHOW TABLE STATUS FROM db4 WHERE NAME = 'category';
/*
	创建数据表指定存储引擎
	CREATE TABLE 表名(
	      列名,数据类型,
	      ...
	)ENGINE = 引擎名称;
*/
CREATE TABLE engine_test(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(10)
)ENGINE = MYISAM;

SHOW TABLE STATUS FROM db4;

/*
	修改数据表的存储引擎
	ALTER TABLE 表名 ENGINE = 引擎名称;
*/
-- 修改engine_test表的存储引擎为InnoDB
ALTER TABLE engine_test ENGINE = INNODB;

3. 存储引擎的选择

MyISAM
        特点:不支持事务和外键操作。读取速度快,节约资源。
        使用场景:以查询操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不是很高!
InnoDB
        特点:MySQL的默认存储引擎,支持事务和外键操作。
        使用场景:对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,读写频繁的操作!
MEMORY
        特点:将所有数据保存在内存中,在需要快速定位记录和其他类似数据环境下,可以提供更快的访问。
        使用场景:通常用于更新不太频繁的小表,用来快速得到访问的结果!
总结:针对不同的需求场景,来选择最适合的存储引擎即可!如果不确定、则使用数据库默认的存储引擎&

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值