MySQL存储引擎

什么是存储引擎

数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。

现在许多数据库管理系统都支持多种不同的存储引擎。MySQL 的核心就是存储引擎。

在MySQL客户端中,使用以下命令可以查看MySQL支持的引擎。

mysql>show engines

1.mysql存储引擎

MyISAM 存储引擎不支持事务,也不支持外键,特点是访问速度快,对事务完整性没有要求,以 SELECT、INSERT 为主的应用基本都可以使用这个引擎来创建表。

fm(存储表定义)

MYD(MYData,存储数据)

MYI(MYIndex,存储索引)

每个 MyISAM 表都有一个标志,服务器或 myisamchk 程序在检査 MyISAM 数据表时会对这个标志进行设置。MyISAM 表还有一个标志用来表明该数据表在上次使用后是不是被正常的关闭了。

MyISAM 表还支持3种不同的存储格式:

静态(固定长度)表

动态表

压缩表

2.InnoDB存储引擎

InnoDB是一个

InnoDB 是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。

1)更新密集的表:InnoDB 存储引擎特别适合处理多重并发的更新请求。

2)事务:InnoDB 存储引擎是支持事务的标准 MySQL存储引擎。

3)自动灾难恢复:与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。

4)外键约束:MySQL 支持外键的存储引擎只有InnoDB.

5)支持自动增加列 AUTO INCREMENT 届性。

一般来说,如果需要事务支持,并且有较高的并发读取频率,InnoDB是不错的选择。

3.关于myisam 与 innoDB选择使用

myisam和innoDB是MySQL数据库提供的两种存储引擎。两者的优劣各有千秋。InnoDB会支持一些关系数据库的高级功能。myisam的性能更优,占用的储存空间少。

1.如果应用程序一定要使用事务,毫无疑问要选择InnoDB 引擎。但要注意,InnoDB的行级锁是有条件的。在 where 条件没有使用主键时,照样会锁全表。比如 DELETE FROMmytable 这样的删除语句。

2.如果应用程序对查询性能要求较高,就要使用MYISAM了。MyISAM 索引和数据是分开的,而且其索引是压缩的,可以更好地利用内存。所以它的查询性能明显优于InnoDB.压缩后的索引也能节约一些磁盘空间。

4.修改默认的存储引擎

修改默认的存储引繁有四种方法,分别如下。

(1)通过alter table修改。

mysql>alter table user_info engine=myisam;

(2)通过修改my.cnf,指定默认存储引擎并重启服务。

vim my.cnf
default-storage-engine=InnoDB

(3)通过create table创建表时指定存储引擎。

mysql>create table engineTest(id int) engine=myisam;

(4)通过MySQL_convert_table_format 转化存储引擎。

yum -y install perl-DBL perl_DBD-MySQL 
/usr/local/mysql/bin/mysql_convet_table_format
--user=root --password='123456' --sock=/tmp/mysql.sock auth
相关推荐
山东布谷科技官方几秒前
布谷直播源码部署服务器关于数据库配置的详细说明
运维·服务器·数据库·直播系统源码·直播源码·直播系统搭建·直播软件开发
yanwushu1 分钟前
Xserver v1.4.2发布,支持自动重载 nginx 配置
mysql·nginx·php·个人开发·composer
易云码21 分钟前
信息安全建设方案,网络安全等保测评方案,等保技术解决方案,等保总体实施方案(Word原件)
数据库·物联网·安全·web安全·低代码
newxtc27 分钟前
【客观理性深入讨论国产中间件及数据库-科创基础软件】
数据库·中间件·国产数据库·国产中间件·科创
蓝眸少年CY27 分钟前
MySQL 【流程控制】函数
mysql
水月梦镜花29 分钟前
redis:list列表命令和内部编码
数据库·redis·list
MonkeyKing_sunyuhua1 小时前
ubuntu22.04 docker-compose安装postgresql数据库
数据库·docker·postgresql
天郁青1 小时前
数据库交互的本地项目:后台管理系统
数据库·交互
马剑威(威哥爱编程)1 小时前
MongoDB面试专题33道解析
数据库·mongodb·面试
小光学长2 小时前
基于vue框架的的流浪宠物救助系统25128(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
数据库·vue.js·宠物