面试问题(mysql有哪些存储引擎)

Mysql-简谈存储引擎InnoDB和MyISAM 2.MyISAM和InnoDB区别 2.1 事务支持 MyISAM 强调的是性能,每次查询具有原⼦性,其执⾏速度⽐InnoDB类型更快,但是不提供事务⽀持。 阅读详情
数据库中的存储引擎其实是对使用了该引擎的表进行某种设置,数据库中的表设定了什么存储引擎,那么该表在数据存储方式、数据更新方式、数据查询性能以及是否支持索引等方面就会有不同的“效果”。在MySQL数据库中存在着多种引擎(不同版本的MySQL数据库支持的引擎不同),熟悉各种引擎才能在软件开发中应用引擎,从而开发出高性能的软件,MySQL数据库中的引擎有哪些呢?一般来说,MySQL有以下几种引擎:ISAM、MyISAM、HEAP(也称为MEMORY)、CSV、BLACKHOLE、ARCHIVE、PERFORMANCE_SCHEMA、InnoDB、 Berkeley、Merge、Federated和Cluster/NDB等,除此以外我们也可以参照MySQL++ API创建自己的数据库引擎。下面逐次介绍一下各种引擎:
        ISAM
        该引擎在读取数据方面速度很快,而且不占用大量的内存和存储资源;但是ISAM不支持事务处理、不支持外来键、不能够容错、也不支持索引。该引擎在包括MySQL 5.1及其以上版本的数据库中不再支持。
        MyISAM
        该引擎基于ISAM数据库引擎,除了提供ISAM里所没有的索引和字段管理等大量功能,MyISAM还使用一种表格锁定的机制来优化多个并发的读写操作,但是需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间,否则碎片也会随之增加,最终影响数据访问性能。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMChk工具和用来恢复浪费空间的 MyISAMPack工具。MyISAM强调了快速读取操作,主要用于高负载的select,这可能也是MySQL深受Web开发的主要原因:在Web开发中进行的大量数据操作都是读取操作,所以大多数虚拟主机提供商和Internet平台提供商(Internet Presence Provider,IPP)只允许使用MyISAM格式。
MyISAM类型的表支持三种不同的存储结构:静态型、动态型、压缩型。
        静态型:指定义的表列的大小是固定(即不含有:xblob、xtext、varchar等长度可变的数据类型),这样MySQL就会自动使用静态MyISAM格式。使用静态格式的表的性能比较高,因为在维护和访问以预定格式存储数据时需要的开销很低;但这种高性能是以空间为代价换来的,因为在定义的时候是固定的,所以不管列中的值有多大,都会以最大值为准,占据了整个空间。
        动态型:如果列(即使只有一列)定义为动态的(xblob, xtext, varchar等数据类型),这时MyISAM就自动使用动态型,虽然动态型的表占用了比静态型表较少的空间,但带来了性能的降低,因为如果某个字段的内容发生改变则其位置很可能需要移动,这样就会导致碎片的产生,随着数据变化的增多,碎片也随之增加,数据访问性能会随之降低。
        对于因碎片增加而降低数据访问性这个问题,有两种解决办法:
        a、尽可能使用静态数据类型;
        b、经常使用optimize table table_name语句整理表的碎片,恢复由于表数据的更新和删除导致的空间丢失。如果存储引擎不支持 optimize table table_name则可以转储并        重新加载数据,这样也可以减少碎片;
        压缩型:如果在数据库中创建在整个生命周期内只读的表,则应该使用MyISAM的压缩型表来减少空间的占用。
        HEAP(也称为MEMORY)
        该存储引擎通过在内存中创建临时表来存储数据。每个基于该存储引擎的表实际对应一个磁盘文件,该文件的文件名和表名是相同的,类型为.frm。该磁盘文件只存储表的结构,而其数据存储在内存中,所以使用该种引擎的表拥有极高的插入、更新和查询效率。这种存储引擎默认使用哈希(HASH)索引,其速度比使用B-+Tree型要快,但也可以使用B树型索引。由于这种存储引擎所存储的数据保存在内存中,所以其保存的数据具有不稳定性,比如如果mysqld进程发生异常、重启或计算机关机等等都会造成这些数据的消失,所以这种存储引擎中的表的生命周期很短,一般只使用一次。
        CSV(Comma-Separated Values逗号分隔值)
        使用该引擎的MySQL数据库表会在MySQL安装目录data文件夹中的和该表所在数据库名相同的目录中生成一个.CSV文件(所以,它可以将CSV类型的文件当做表进行处理),这种文件是一种普通文本文件,每个数据行占用一个文本行。该种类型的存储引擎不支持索引,即使用该种类型的表没有主键列;另外也不允许表中的字段为null。
        BLACKHOLE(黑洞引擎)
        该存储引擎支持事务,而且支持mvcc的行级锁,写入这种引擎表中的任何数据都会消失,主要用于做日志记录或同步归档的中继存储,这个存储引擎除非有特别目的,否则不适合使用。详见博客《 BlackHole 存储引擎 》
        ARCHIVE
        该存储引擎非常适合存储大量独立的、作为历史记录的数据。区别于InnoDB和MyISAM这两种引擎,ARCHIVE提供了压缩功能,拥有高效的插入速度,但是这种引擎不支持索引,所以查询性能较差一些。
        PERFORMANCE_SCHEMA
        该引擎主要用于收集数据库服务器性能参数。这种引擎提供以下功能:提供进程等待的详细信息,包括锁、互斥变量、文件信息;保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断;对于新增和删除监控事件点都非常容易,并可以随意改变mysql服务器的监控周期,例如(CYCLE、MICROSECOND)。
        InnoDB
        该存储引擎为MySQL表提供了ACID事务支持、系统崩溃修复能力和多版本并发控制(即MVCC Multi-Version Concurrency Control)的行级锁;该引擎支持自增长列(auto_increment),自增长列的值不能为空,如果在使用的时候为空则自动从现有值开始增值,如果有但是比现在的还大,则直接保存这个值; 该引擎存储引擎支持外键(foreign key) ,外键所在的表称为子表而所依赖的表称为父表。该引擎在5.5后的MySQL数据库中为默认存储引擎。
        Berkeley(BDB)
        该存储引擎支持COMMIT和ROLLBACK等其他事务特性。该引擎在包括MySQL 5.1及其以上版本的数据库中不再支持。
        Merge
        该引擎将一定数量的MyISAM表联合而成一个整体。参见博客《 MySQL Merge存储引擎 》
        Federated
        该存储引擎可以不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。这种存储引擎非常适合数据库分布式应用。
        Cluster/NDB
        该存储引擎用于多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大、安全和性能要求高的场景。
        以上是对MySQL数据库中存储引擎的总结,只是重点总结了一下各种不同存储引擎的特点,不对的地方还望各位指正,不胜感激。
MySQL之四大引擎、账号管理以及建库认识 MySQL中的引擎是指存储引擎,它是用于存储、管理和检索数据的内部组件。不同的存储引擎具有不同的特性和功能,例如MyISAM、InnoDB、MEMORY等。选择合适的存储引擎可以根据应用的需求来提高性能和可靠性。MySQL中的存储引擎可以通过CREATE TABLE语句中的ENGINE选项来指定。 阅读详情

相关推荐

MySQL面试之存储引擎类问题

首先我们先提出几个问题? 1.说说你了解的MySQL存储引擎及适用场景 2.在什么情况下Innodb无法在线修改表结构? 3.在无法进行在线修改表结构的情况下,要如何操作? 4.Innodb是如何实现事务的? 5.Innodb读操作是否会堵塞写操作? 答案解析如下: 一、说说你了解的MySQL存储引擎及适用场景 1.MySQL常用的存储引擎 2.各种常见存储引擎的使用场...

Thinkao 的博客 1543

mysql数据库引擎有哪些

MySQL是一个开源的关系型数据库管理系统(RDBMS),它支持多种数据库引擎。这些数据库引擎可以用于存储、管理和操纵数据。 MySQL支持以下数据库引擎: InnoDB: 这是MySQL的默认数据库引擎,它是一种事务安全的引擎,支持外键约束、行级锁定和崩溃恢复能力。 MyISAM: 这是MySQL的传统数据库引擎,它提供了较快的查询性能,但是不支持事务处理和外键约束。 MEMORY: 这是...

weixin_35756690的博客 1995

学学MySQL:20道高频面试题(含答案)+21条MySQL性能调优经验

现在其实从大厂招聘需求可见,在招聘要求上有高并发经验优先,包括很多朋友之前都是做传统行业或者外包项目,一直在小公司,技术搞的比较简单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。所以说,如果你想进大厂,想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》

2401_84048445的博客 1593

MySQL中的各种引擎

MySQL中的各种引擎

gaohuanjie的专栏 5万+

CRMEB小程序订阅消息实战指南:PHP配置与疑难排查

本文提供CRMEB小程序订阅消息的完整实战指南,重点解析PHP环境下的配置流程与常见错误解决方法。文章从订阅消息的核心规则讲起,详细拆解了从微信后台获取模板到CRMEB后台完成字段映射的关键步骤,并提供了从用户授权、缓存清除到服务器日志检查的逐层排查方案,帮助开发者高效打通消息通道,避免常见配置陷阱。

weixin_29022115的博客 320

Unity地形优化实战:LOD、合批与HLOD打造流畅开放世界

在计算机图形学与游戏开发中,渲染优化是保障应用流畅运行的核心技术。其基本原理在于通过算法与策略,在视觉保真度与硬件资源消耗之间寻求最佳平衡,旨在提升帧率、降低功耗。这一技术的核心价值在于,它直接决定了大规模场景(如开放世界游戏)在性能受限平台(尤其是移动设备)上的可行性。具体到地形渲染这一关键应用场景,开发者需要综合运用多层次细节(LOD)技术来动态调整模型精度,并通过Draw Call合批(Batching)与GPU实例化(GPU Instancing)来大幅减少CPU到GPU的通信开销。对于超大规模世界

weixin_28077113的博客 334

MySQL的数据库引擎介绍

Mysql数据库引擎

wangshiqi666的博客 2383

超详细 | 贝叶斯网络基础——有图有真相

Hello,大家好,我是starz。这是本系列的第二篇《概率基础Ⅱ》,虽说是概率基础,但作为过渡,它开始以图为载体 这节的主要内容有: 贝叶斯网络 三种结构 D-划分 贝叶斯球 马尔科夫毯 应用例子 总结 让我们开始吧 :3 贝叶斯网络 概率图模型可笼统分为两类,一是基于无向图的马尔科夫网络: 二是基于有向图的贝叶斯...

qq_41603411的博客 2万+

java面试常问问题,mysql的存储引擎面试题

锁是一种用来控制多线程访问共享资源的工具。通常,锁可以独占共享资源:同一时间只有一个线程可以获得锁,并且所有访问共享资源的线程都必须首先获得锁。前面我们介绍过了synchronized,使用synchronized的方法和代码块作用域机制使得使用监视器锁更加简单,并且帮助避免了许多关于锁的常见编程错误,比如锁未及时释放等问题。

m0_61041374的博客 752

告别GitHub!手把手教你用Gitblit在Windows 10上搭建私人局域网Git服务器(附SourceTree配置)

本文详细介绍了如何在Windows 10环境下使用Gitblit搭建私有Git服务器,实现局域网内高效代码协作。通过轻量级的Gitblit解决方案,开发者可以享受数据完全自主、离线可用性和局域网高速访问等优势。文章包含从环境准备、安装部署到SourceTree配置的全流程指南,特别适合金融、医疗等敏感行业团队使用。

weixin_30430169的博客 283

LPDDR5 学习笔记08:电气参数设计要求

本文详细阐述了LPDDR5内存接口的关键电气规范和时序要求。主要内容包括:1)绝对最大额定值限制及长期工作可靠性说明;2)差分时钟信号(CK/WCK)的输入电压、转换速率和交叉点电压规范;3)单端时钟信号的定义和测量方法;4)时钟周期、抖动(周期抖动、相邻周期抖动)和累积误差的精确计算方法;5)片选信号在同步/异步模式下的接收器规范;6)命令地址信号和数据信号的接收器掩模定义及脉冲宽度要求。所有参数均严格定义了测量条件和合规标准,为LPDDR5接口设计提供了完整的电气规范参考。

一只豌豆象的博客 1185

MySQL面试常问问题(数据库架构+存储引擎) —— 赶快收藏

MySQL面试常问问题(数据库架构+存储引擎) —— 赶快收藏

weixin_43889788的博客 1235

【100%通过率】华为OD机试真题 Python 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

MySQL数据库的存储引擎InnoDB和MyISAM-面试官必问题

存储引擎的概念只在MySQL数据库才有的,不是所有的关系型数据库都有存储引擎这个概念;存储引擎是相对于表来说的而不是针对数据库;Mysql 5.0版本以后,默认的存储引擎是Innodb。为了方便管理,人们把连接管理、查询缓存、语法解析、查询优化这些并不涉及真实数据存储的功能划分为MySQL Server的功能,把真实存取数据的功能划分为存储引擎的功能。所以在MySQL server完成了查询优化后,只需按照生成的执行计划调用底层存储引擎提供的API,获取到数据后返回给客户端就好了。

m0_58341177的博客 822

【AI编程】Trae 环境搭建与配置从使用到项目实战详解

Trae 环境搭建与配置从使用到项目实战详解

congge 5652

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

存在于两张表中的字段能组成联合索引吗_MySQL DBA面试常见问题总结--索引,事务,存储引擎,优化等...

概述这篇文章主要是针对开发人员的,所以不涉及到MySQL的服务部署等操作,主要包括索引,事务,存储引擎,优化等方面。1、索引关于MySQL的索引,之前实际上也介绍了很多次,这里主要介绍一些常用的面试题。1、什么是索引?索引是个什么样的数据结构呢?索引是一种数据结构,可以帮助我们快速的进行数据的查找.索引的数据结构和具体存储引擎的实现有关, 在MySQL中使用较多的索引有Hash索引,B+树索引等,...

weixin_34526937的博客 876

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MySQL面试必会的10个核心问题(附详细答案解析)

自己动手搭MySQL环境(Docker一分钟搞定)用sysbench做压力测试看官方文档的InnoDB章节在测试库故意制造锁等待,用show engine innodb status分析记住,面试不是背答案大赛,理解原理+实战经验才是王炸组合!下次面试遇到MySQL问题,把这些知识点像报菜名一样甩出来,保证让面试官怀疑到底是谁在面试谁(手动狗头)!

siliconscribe的博客 1127

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

MySQL存储引擎大厂面试经典三连问

本文直击MySQL大厂面试核心,带来存储引擎领域的经典三连问。首问MySQL 8.0自带哪些存储引擎及它们的职责,揭秘MySQL如何满足不同数据存储需求。次问能否为单张表设置存储引擎,解锁数据库性能优化的新姿势。终问MySQL支持哪些存储引擎,并揭晓默认使用的引擎,助你快速上手MySQL,避免踩坑。这三个问题不仅考察面试者对MySQL存储引擎的掌握程度,更关乎数据库性能优化和数据安全的实战经验。掌握它们,让你在MySQL面试中游刃有余,迈向技术大牛之路!

小白的大数据之旅的博客 1119

MySql核心面试面试问题解析

例如,备份命令为“mysqldump -u [username] -p [database_name] > backup.sql”,恢复命令为“mysql -u [username] -p [database_name] < backup.sql”。答案:“SELECT * ”表示选择所有列,“FROM users”表示从users表中选择,“WHERE age > 25”表示条件是年龄大于25岁。答案:复制是将数据从一个MySQL服务器(主服务器)复制到一个或多个MySQL服务器(从服务器)的过程。

HappyAcmen 565

面试必问的10个问题,MySQL常见的两种存储引擎,多线程并发解决方案面试题

与传统的ISAM与MyISAM相比,InnoDB的最大特色就是支持了ACID兼容的事务(Transaction)功能。这里是小编拿到的学习资源,其中包括“中高级Java开发面试高频考点题笔记300道.pdf”和“Java核心知识体系笔记.pdf”文件分享,内容丰富,锁定粒度最小,发生锁冲突的概率最低,并发度也最高;每次操作锁住整张表。锁定粒度大,发生锁冲突的概率最高,并发度最低;Mysql的行锁和表锁( 锁是计算机协调多个进程或纯线程并发访问某一资源的机制)支持行锁,采用MVCC来支持高并发,有可能死锁。

2401_84004024的博客 989

MySQL的经典面试问题及其答案

以下是MySQL的经典面试问题及其答案,涵盖了数据库基础、索引、事务、优化等核心知识点,帮助你在面试中更好地应对相关问题。

liao9416的博客 1325

“金三银四”春招指南之“性能调优”:MySQL+Tomcat+JVM,看完还怕面试官的轰炸

在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!大家看完有什么不懂的可以在下方留言讨论也可以关注。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!有什么不懂的可以在下方留言讨论也可以关注。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_84048832的博客 1044

看完豁然开朗,中高级java面试题及答案

(JVM,JAVA集合,,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存)

m0_61067876的博客 1014

建立了索引怎么使用_MySQL DBA面试常见问题总结--索引,事务,存储引擎,优化等...

概述这篇文章主要是针对开发人员的,所以不涉及到MySQL的服务部署等操作,主要包括索引,事务,存储引擎,优化等方面。1、索引关于MySQL的索引,之前实际上也介绍了很多次,这里主要介绍一些常用的面试题。1、什么是索引?索引是个什么样的数据结构呢?索引是一种数据结构,可以帮助我们快速的进行数据的查找.索引的数据结构和具体存储引擎的实现有关, 在MySQL中使用较多的索引有Hash索引,B+树索引等,...

weixin_39611331的博客 124

Mysql 存储引擎、事务、索引相关面试考点整理007

Mysql基础部分存储引擎、事务以及索引相关的面试考点,整理的笔记如内容。

菜鸟阿康编程学习之路 1095
上一篇: 面试问题(mysql是行级锁还是表级锁)
下一篇: 面试问题(你喜欢和什么样的人一起工作,不喜欢和什么样的人一起工作)
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值