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
相关推荐
夏玉林的学习之路32 分钟前
正则表达式
数据库·c++·qt·mysql·正则表达式
JIngJaneIL1 小时前
财务管理|基于SprinBoot+vue的个人财务管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·财务管理系统
JIngJaneIL2 小时前
口腔健康系统|口腔医疗|基于java和小程序的口腔健康系统小程序设计与实现(源码+数据库+文档)
java·数据库·spring boot·小程序·论文·毕设·口腔医疗小程序
白帽子黑客罗哥2 小时前
常见Web安全漏洞全解析:从原理到防御的实战指南
数据库·web安全·渗透测试·漏洞利用·权限提升
寒山李白4 小时前
IDEA连接MySQL服务器数据库指南
java·数据库·mysql·intellij-idea·idea·database
计算机学姐5 小时前
基于SpringBoot的动漫推荐系统【协同过滤推荐算法+词云图+排行榜】
java·vue.js·spring boot·后端·mysql·intellij-idea·推荐算法
亿坊电商7 小时前
PHP后端项目中多环境配置管理:开发、测试、生产的优雅解决方案!
服务器·数据库·php
韩立学长7 小时前
基于Springboot的影视评论网站的设计与实现58py6238(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
未来之窗软件服务7 小时前
未来之窗昭和仙君(四十七)开发商品进销存——东方仙盟筑基期
数据库·进销存·仙盟创梦ide·东方仙盟·昭和仙君·东方仙盟架构
IDOlaoluo8 小时前
TinyRDM 1.2.3 Windows版安装教程(附Redis客户端下载及详细步骤)
数据库·redis·缓存