Linux中,MySQL存储引擎

news2024/9/20 17:00:49

存储引擎

在数据库中保存的是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库。而在设计表的时候,最关注的一个问题是使用什么存储引擎。
MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的、不同的功能和能力。通过选择不同的技术,能够获得额外的速度或者功能,从而改善应用的整体性能。
例如,如果在研究大量的临时数据,也许需要使用内存类存储引擎。内存存储引擎能够在内存中存储相关数据。又或者,需要使用一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。
这些不同的技术以及配套的相关功能在 MSQL中被称作存储引擎(也称作表类型)。MySQL默认配置了许多不同的存储引擎,可以预先设置或者在 MySQL服务器中启用。选择适用于服务器、数据库和表格的存储引擎,可以在存储信息、检索数据时,提供最大的灵活性。
关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于 Excel电子表格的形式。有的表简单、有的表复杂、有的表根本不用来存储任何长期数据、有的表读取时非常快,但是插入数据时却很差。在实际开发过程中,就可能需要各种各样的表,不同的表就意味着存储不同类型的数据,数据的处理上也会存在着差异。那么,对于MySQL米说,它提供了很多种类型的存储引擎(或者说不同的表类型),根据对数据处理的需求,可以选择不同的存储引擎,从而最大限度的利用MySQL强大的功能。
在 MySQL客户端中,使用以下命令可以査看 MySQL支持的引擎。

查看支持的引擎

mylsam存储引擎

空间:256T

功能:b树索引、不支持事务、支持全文索引、插入和查询速度快

MyISAM 存储引擎不支持事务,也不支持外键,特点是访问速度快,对事务完整性没有要求,以 SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表。
每个MyISAM表在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为:
tm(存储表定义)
MYD(MYData,存储数据)
MYI(MYIndex,存储索引)

MyISAM 表还支持3种不同的存储格式:
静态(固定长度)表
动态表
压缩表

innoDB存储引擎

空间64T

功能:支持b树索引、支持数据缓存、支持外键、不支持全文索引、支持行级锁定。

InnoDB 是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。MySQL 从5.5.5版本开始,默认的存储引擎为InnoDB。InnoDB 存储引擎还引入了行级锁定和外键约束,在以下场景中使用InnoDB 存储引擎是最理想的选择:
更新密集的表:InnoDB存储引整特别适合处理多重并发的更新请求。
事务:InnoDB 存储引擎是支持事务的标准MySQL存储引。
自动灾难恢复:与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。
外键约束:MySQL支持外键的存储引擎只有InnoDB.
支持自动增加列 AUTO INCREMENT 属性。
一般来说,如果需要事务支持,并且有较高的并发读取频率,InnoDB是不错的选择。
而 MyISAM 和InnoDB 两种存储引擎的区别主要表现在以下几个方面。

InnoDB 支持事务,MyISAM不支持,这一点是非常重要的。事务是一种高级的处理方式,如对一些表中的列进行增删改的过程中只要哪个出错还可以回滚还原,而 MyISAM就不可以。
MyISAM 适合查询、插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用。
InnoDB 支持外键,MyISAM 不支持。
从 MySQL5.5.5 以后,InnoDB 是默认引擎。
MySQL 从5.6 版本开始 InnoDB 引擎才支持 FULLTEXT 类型的索引,
InnoDB 中不保存表的行数,如 select count(*)from table 时,InnoDB 需要扫描一遍整个表来计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。需要注意的是,当 count(*)语句包含 where 条件时 MyISAM 也需要扫描整个表。
对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在 MyISAM 表中可以和其他字段一起建立组合案引。
清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表。InnoDB 支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like"%ee%;)。

mylsam与innodb选择使用

MyISAM 和 InnoDB 是 MySQL 数据库提供的两种存储引擎。两者的优劣可谓是各有千秋。InnoDB会支持一些关系数据库的高级功能,如事务功能和行级锁,MyISAM 不支持。MyISAM 的性能更优,占用的存储空间少。所以,选择何种存储引擎,视具体应用而定。
(1)如果应用程序一定要使用事务,毫无疑问要选择InnoDB 引擎。但要注意,InnoDB的行级锁是有条件的。在 where 条件没有使用主键时,照样会锁全表。比如 DELETE FROMmytable 这样的删除语句。
(2)如果应用程序对查询性能要求较高,就要使用MyISAM了。MyISAM 索引和数据是分开的,而且其索引是压缩的,可以更好地利用内存。所以它的查询性能明显优于InnoDB。压缩后的索引也能节约一些磁盘空间。
有人说 MyISAM 只能用于小型应用,其实这只是一种偏见。如果数据量比较大,这是需要通过升级架构来解决,比如分表分库,而不是单纯地依赖存储引警。

修改默认的存储引擎

修改默认引擎有四种方法,分别如下:

其他的一些引擎

memory:内存 b树索引 hash索引、不支持事务
archive:none、不支持事物、不支持全文索引
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1974634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【书生大模型实战营第三期 | 入门岛第1关-Linux基础知识】

学习心得:掌握InternStudio开发机与Linux基础 摘要 通过阅读这份详尽的InternStudio开发机与Linux基础教程,我对如何在云端算力平台上进行开发工作有了初步的了解。学习过程中,我不仅掌握了SSH远程连接和端口映射的技巧,还对Lin…

将后台传来的数据,转成easyui-tree所需格式

easyui 中文文档 EasyUI Tree组件需要一个包含特定属性(如id, text, children等)的JSON对象数组来初始化。 而后台返回的数据,它可能不是我们直接能拿来用的。 方式一:使用loadFilter函数处理来自Web Services的JSON数据。 $(#…

虚拟机处理yum缓存堆积问题

虚拟机处理yum缓存堆积问题 场景:虚拟机用的时间长了,网络不好,yum显示无法安装。此时我们因考虑到Yum软件包管理器的仓库配置文件地方对方太多而导致的问题。 解决方案: 一:首先检查虚拟机设置:确保设备…

东方古全艺藏委八一画展翰墨抒真情,当代艺术家挥笔颂军魂

在2024年这个意义非凡的夏日,随着“八一”建军节的脚步日益临近,一场旨在铭记历史、颂扬英雄、传承精神的书画盛宴——“中国东方文化研究会艺术品收藏交流委员会书画中心”举办的纪念中国人民解放军建军 97 周年书画邀请展,于8月1日在北京饭…

PTA—基础编程题目集(7-19)

7-19 支票面额 目录 题目描述 输入格式: 输出格式: 输入样例1: 输出样例1: 输入样例2: 输出样例2: 参考代码 总结 题目描述 一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了…

Golang内存管理——堆分配

go语言的内存自动分配和回收的,因此内存的使用流程大致为:获取内存——分配内存——回收内存——再分配内存。 其中分配内存分为两方面,堆内存分配和栈内存分配,堆内存和栈内存是两种不同的分配方式,本篇文章主要是堆…

Leetcode刷题——9 基本数据结构(哈希表,并查集)

注&#xff1a;以下代码均为c 1. 哈希表 1.1 重复的DNA序列 什么数据结构既可以保存数据又可以计数&#xff1a;哈希表 vector<string> findRepeatedDnaSequences(string s) {unordered_map<string, int> hash;vector<string> ans;for(int i 0; i 10 &l…

Docker部署RabbitMQ指南

1. Rabbit概述 RabbitMQ是基于Erlang语言开发的开源消息通信中间件&#xff0c;官方地址&#xff1a;https://www.rabbitmq.com/。 2. 单机部署 我们在CentOS7虚拟机中使用Docker来安装。 2.1 下载镜像 方式一&#xff1a;在线拉取 docker pull rabbitmq:3-management 方…

Linux 内核源码分析---文件系统关联与字符设备操作

文件系统关联 设备文件都是由标准函数处理&#xff0c;类似于普通文件。设备文件也是通过虚拟文件系统来管理的&#xff0c;和普通文件都是通过完全相同的接口访问。 inode 中设备文件的成员数据 虚拟文件系统每个文件都关联到一个 inode&#xff0c;用于管理文件的属性。 …

RIP、OSPF 协议详解 / Stub/Totally Stub/NSSA/Totally NSSA 区域测试

注&#xff1a;原出处 https://javaforall.cn/204275.html 图片已挂。下文来自 腾讯云 全栈君 RIP、OSPF 协议详解 1、路由协议简介 在互联网中&#xff0c;一个自治系统 (AS) 是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络…

我们如何提高 Baklib 的 SEO 性能

搜索引擎已经成为我们日常生活中不可或缺的一部分&#xff1b;谷歌甚至成为英语中的动词。因此&#xff0c;每个企业都需要关注其搜索引擎排名。在 Baklib&#xff0c;我们最近遇到了 SEO 排名的挑战。因此&#xff0c;在我们讨论这个问题之前&#xff0c;让我们先了解一下爬行…

宠物空气净化器可以除毛吗?室内浮毛空气净化器推荐

家里养了5只猫&#xff0c;满天飞的猫毛发&#xff0c;随风飘到各个角落&#xff0c;可以说苦不堪言。真的不建议养猫&#xff0c;除非你能接受空气中飞舞着浮毛&#xff0c;衣服、床、筷子、鼻子里全都是猫毛&#xff0c;拉臭臭有异味等等。感觉到处都被猫毛覆盖了&#xff0c…

【多线程】线程状态与并发三大特性的细节剖析

这篇文章主要用于对于多线程的一些查缺补漏。 一、 线程的状态 1&#xff0c;操作系统层面&#xff0c;线程的5种状态 关于线程有几种状态&#xff0c;有多种说法&#xff0c;5、6、7都有。 首先对于操作系统来说&#xff0c;只有5种状态&#xff0c;状态如下新建&#xff…

mac|安装hashcat(压缩包密码p解)

一、安装Macports&#xff08;如果有brew就不用这一步&#xff09; 根据官网文档&#xff1a;The MacPorts Project -- Download & Installation&#xff0c;安装步骤如下 1、下载MacPorts&#xff0c;这里我用的是tar.gz &#xff0c;可以通过keka&#xff08;keka安装在…

《pygame游戏开发实战指南》第三节 理解pygame中的坐标体系

pygame中的坐标体系非常的简单&#xff0c;其实就是一句话&#xff1a;任何对象的左上角都为坐标原点(0, 0)&#xff0c;向右为X轴正方向&#xff0c;向下为Y轴正方向。如下图所示。本节主要通过一些示例来带大家理解这一句话。如果读者已经理解的话&#xff0c;可以直接跳过这…

iPhone不下载APP直接投屏到电脑,这些投影设置你会用吗【电脑投影设置需添加】

最近小编一直在追唐朝诡事录之西行&#xff0c;太好看了&#xff0c;就是手机屏幕有点小&#xff0c;虽然也可以在电脑上看&#xff0c;但是小编心血来潮想投屏到此电脑看看&#xff0c;因此就写了这篇文章。 ①首先打开电脑的设置&#xff0c;打开系统 ②左侧栏中找到投影到此…

学习Java的日子 Day63 文件上传,文件下载,上传头像案例

文件上传下载 1.文件上传 文件上传的应用 比如个人信息的管理&#xff0c;上传头像 比如商品信息的管理&#xff0c;上传商品的图片 这些都需要通过浏览器客户端将图片上传到服务器的磁盘上 2.文件上传原理 所谓的文件上传就是服务器端通过request对象获取输入流&#xff0c;将…

VMware安装Centos虚拟机使用NAT模式无法上网问题处理

NAT模式无法上网问题处理 Centos7与Ubuntu使用同一个NAT网络&#xff0c;Ubuntu正常访问互联网&#xff0c;Centos无法正常访问。 处理方案&#xff1a; cd /etc/sysconfig/network-scripts vi ifcfg-ens33 修改配置项&#xff1a; 重启网络&#xff1a; service network resta…

vue的nextTick是下一次事件循环吗

如题&#xff0c;nextTick的回调是在下一次事件循环被执行的吗&#xff1f; 是不是下一次事件循环取决于nextTick的实现&#xff0c;如果是用的微任务&#xff0c;那么就是本次事件循环&#xff1b;否则如果用的是宏任务&#xff0c;那么就是下一次事件循环。 我们看下Vue3中…

STM32L051K8U6-开发资料

STM32L051测试 &#xff08;四、Flash和EEPROM的读写&#xff09;-云社区-华为云 (huaweicloud.com) STM32L051测试 &#xff08;四、Flash和EEPROM的读写&#xff09; - 掘金 (juejin.cn) STM32L0 系列 EEPROM 读写&#xff0c;程序卡死&#xff1f;_stm32l0片内eeprom_stm3…