MySQL调优系列(三)——存储引擎的选择

news/2024/12/4 20:13:12/

一、什么是存储引擎

关系型数据库的数据是存在表里的,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式,每个表格就是一个数据。
表是在存储数据的同时,还要组织数据的存储结构,而这些数据的组织结构就是由存储引擎决定的。
存储引擎的作用就是规定了数据存储时的存储结构,业务直接决定了存储引擎的选择。因为不同的业务对数据的要求是不同的,比如查询、增删、外键、事务、索引等。
mysql查看支持存储引擎语句:show engines;
在这里插入图片描述
可以看出mysql默认支持的InnoDB索引,且支持事务、行级锁、外键。
存储引擎的使用级别是数据表。
切换存储引擎的sql语句如下:

alter table a engine = innodb;

二、存储引擎的选择

mysql比较常用的存储引擎有三个:

Innodb:行(记录)锁,事务(回滚),外键
Myisam:表锁,全文索引
Memory:内存存储引擎,速度快、数据容易丢失

1、Innodb

mysql的默认存储引擎,支持事务、外键。
场景:对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作。(普通业务、web

2、Myisam

表锁,全文索引,访问速度快。
场景:应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不是很高。(多读少写,对数据恢复要求不高,比如数据仓库)—MongoDB

3、Memory

将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。MEMORY的缺陷就是对表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性。—Redis

一般情况下,默认使用Innodb,可以满足大多数场景。
尽量不要混合使用存储引擎,因为会有不可控的问题,比如:
事务:一个事务对两种存储引擎的表进行操作,如果这个事务出现了回滚,那么InnoDB存储引擎的表才可以进行回滚,MyISAM存储引擎表中的数据是无法回滚。这样就会带来一些数据逻辑上的问题。


http://www.ppmy.cn/news/64429.html

相关文章

【MySQL】事务

系统地复习一遍MySQL的几个必会点。 文章目录 简介演示1、指定事务提交方式2、通过指令操作事务 事务四大特性并发事务问题事务隔离级别 简介 事务 是一组操作(即sql语句)的集合,是一个不可分割的工作单位,事务当中的所有操作会被…

Qt5.9学习笔记-事件(五) 事件调试和排查

⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三…

常用的网页设计工具,有哪些比较推荐

网页设计并不容易,易于使用的网页设计工具更难找到。随着网络的快速发展,网站迅速崛起,网页设计也很流行。本文收集了7款易于使用的网页设计工具,每一种近年来都受到网页设计师的广泛欢迎,以确保实用和易于使用。我希望…

程序员面试金典10.*

文章目录 10.1合并排序的数组10.02变位词组10.03搜索旋转数组10.05稀疏数组搜索10.09排序矩阵查找10.10 数字流的秩10.11 峰与谷 10.1合并排序的数组 这个就从后往前加入到新数组里就行。如果B的下标是-1则结束,A的下标是-1则一直加B的元素。 class Solution { pub…

【C语言】都玩过三子棋游戏把,但你知道怎么用C语言实现三子棋游戏吗?让我来手把手教你。

三子棋游戏 1.前言2.功能分析2.1主函数设计及菜单设计2.2打印棋盘与棋盘初始化2.3玩家下棋2.4电脑下棋2.5判断输赢2.5.1代码优化 3.game.h头文件展示4.text.c源文件文件展示5.game.c源文件文件展示 所属专栏:C语言 博主首页:初阳785 代码托管&#xff1a…

OBCP考点总结二

11.转储相关参数 minor_freeze_times n 控制两次合并之间的转储次数,达到此次数则自动触发合并(Major Freeze) n 设置为 0表示关闭转储,即每次租户MemStore使用率达到冻结阈值(freeze_trigger_percentage)都直接触发集群合并 minor_merge_concurrency…

Oracle配置方案-RAC

基本的Oracle RAC配置方案的具体步骤: 硬件准备: 确保服务器满足Oracle RAC的硬件要求,包括适当的CPU、内存和存储配置。配置共享存储:使用共享存储(如SAN或NAS)来存储数据库文件,确保所有节点都…

图片处理软件:分享6款非常实用的图片处理工具

目录 一、移动端 1、snapseed 2、一键抠图 3、pixlr 二、电脑端 1、图片编辑助手 2.GIMP 3、photopea 今天给大家分享6款非常实用的图片处理工具,其中包含移动端和电脑端,每一款都非常实用,希望对大家能有所帮助! 一、移…