面试官问我MySQL和MariaDB的联系和区别,这我能不知道?

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。
🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。
🏆本文已收录于PHP专栏:MySQL的100个知识点。
🎉欢迎 👍点赞✍评论⭐收藏
文章目录
- 🚀一、MySQL 和 MariaDB 是什么?
- 🔎1.1 MySQL
- 🔎1.2 MariaDB
- 🚀二、MySQL 和 MariaDB 的不同
- 🔎2.1 存储引擎
- 🔎2.2 功能扩展
- 🔎2.3 发展和授权问题
- 🚀三、区别和应用场景
- 🔎3.1 选择 MySQL 的场景
- 🔎3.2 选择 MariaDB 的场景
- 🚀四、总结
🚀一、MySQL 和 MariaDB 是什么?
MySQL和MariaDB都是关系型数据库管理系统(RDBMS),用于存储和管理数据。它们都使用结构化查询语言(SQL)进行数据操作,包括查询、插入、更新和删除等。
🔎1.1 MySQL
MySQL 是最早由瑞典公司 MySQL AB 开发的一款开源关系型数据库管理系统。它于1994年发布,并在2008年被 Sun Microsystems 收购,后来又被 Oracle Corporation 收购。MySQL 以其性能、可靠性和灵活性而广受欢迎,成为全球最流行的开源数据库之一。许多知名的网站和应用程序,如Facebook、Twitter和YouTube都使用 MySQL 来存储数据。
主要特点:
- 高性能:MySQL 的执行速度非常快,适用于高并发和大规模数据处理。
- 可靠性:MySQL 具有事务支持和数据恢复功能,可以确保数据的一致性和完整性。
- 灵活性:MySQL 支持多种存储引擎,如InnoDB、MyISAM等,以适应不同的应用需求。

🔎1.2 MariaDB
MariaDB 是 MySQL 的一个分支,由MySQL的创始人之一 Michael Monty Widenius 在 Oracle 收购 MySQL 后创建。他担心 Oracle 对 MySQL 的未来发展可能不如人们期望,因此决定创建一个与 MySQL 兼容但更开放和自由的替代品。MariaDB 于2009年首次发布,目前被许多公司和组织广泛采用。
主要特点:
- 兼容性:MariaDB 是与 MySQL 兼容的,可以直接替换 MySQL 来使用。
- 提升性能:MariaDB 在一些关键的性能指标上超过了 MySQL,如查询优化、并发控制等。
- 新功能:MariaDB 增加了一些在 MySQL 中缺失的功能,如全文搜索、地理信息系统等。
- 社区支持:MariaDB 的开发是由社区驱动的,具有更强大的社区支持和活跃度。

🚀二、MySQL 和 MariaDB 的不同
虽然 MySQL 和 MariaDB 在很多方面是相似的,但它们也存在一些重要的差异。
🔎2.1 存储引擎
MySQL 默认使用的存储引擎是 InnoDB,而 MariaDB 默认使用的是 XtraDB(一个 InnoDB 的分支)。InnoDB 和 XtraDB 在很大程度上是相同的,但 XtraDB 添加了一些额外的功能,并改进了一些性能问题。
此外,MySQL 还支持 MyISAM 存储引擎,而 MariaDB 则不再支持 MyISAM,而是使用了 Aria 引擎作为替代。
🔎2.2 功能扩展
MariaDB 在一些功能上超越了 MySQL,并添加了一些新功能。例如,MariaDB 提供了全文搜索、地理信息系统、JSON 数据类型等特性,而这些在 MySQL 中并不完全支持或不支持。
此外,MariaDB 还实施了一些性能改进,如查询优化器的优化、并发控制的改进等。
🔎2.3 发展和授权问题
MySQL 自 2008 年以来由 Oracle 公司拥有。虽然 Oracle 承诺继续支持和开发 MySQL,但一些人担心 Oracle 对 MySQL 的未来发展可能会受到限制。
相比之下,MariaDB 是一个由社区驱动的项目,可以更加开放和自由。这种开放性导致 MariaDB 的开发更具活力,社区贡献者更多,因此在一些方面发展得更快。
🚀三、区别和应用场景
尽管 MySQL 和 MariaDB 在功能上存在一定的差异,但它们的兼容性使得迁移和切换非常容易。因此,大多数情况下可以根据具体需求来选择使用 MySQL 还是 MariaDB。
🔎3.1 选择 MySQL 的场景
- 已经在使用
MySQL,并且没有对MariaDB特定功能的需求。 - 需要使用
MyISAM存储引擎或其他MySQL特定功能。 - 对
Oracle公司的支持和认可有信心。
🔎3.2 选择 MariaDB 的场景
- 对
MySQL的未来发展感到担心,希望选择一个更加开放和自由的替代品。 - 对
MySQL一些特性的缺失感到不满,如全文搜索、地理信息系统等。 - 对于社区支持和活跃度有较高的需求。
需要注意的是,无论选择 MySQL 还是 MariaDB,在应用程序层面上并不需要做太多的改动,因为它们的兼容性非常好。绝大多数情况下,只需将数据库驱动程序或连接库从 MySQL 更换为 MariaDB 即可完成切换。
🚀四、总结
MySQL 和 MariaDB 都是强大而受欢迎的关系型数据库管理系统,它们的设计和功能在很大程度上是相似的。然而,MariaDB 在一些方面进行了改进和增强,提供了更多的特性和更好的性能。此外,MariaDB 的社区支持和活跃度也更高。

在选择 MySQL 还是 MariaDB 时,可以根据具体需求、对未来发展的担忧、对特定功能的要求等因素来做出决策。无论选择哪个,都可以通过简单的替换数据库驱动程序来实现切换,而无需对应用程序进行太多的改动。
相关文章:
面试官问我MySQL和MariaDB的联系和区别,这我能不知道?
🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…...
1.网络空间搜素引擎
网络空间搜素引擎 https://cybermap.kaspersky.com/cn 世界所以带有ip的网络设备互联组成的空间叫做网络空间 地址 :shodan.io 简介 : 这句话还是有点东西得 。 区别: 平常得搜素引擎主要搜网页,shadan可以搜所以带有ip地址…...
《安富莱嵌入式周报》第321期:开源12导联便携心电仪,PCB AI设计,150M示波器差分探头,谷歌全栈环境IDX,微软在Excel推出Python
周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1ju4y1D7A8/ 《安富莱嵌入式周报》第321期:开源12导…...
前端开发必备的网站
前端开发必备的网站及官网 说明: 这里记录了我本人平时开发所用到的网站,对我还是有帮助的,后续会接着补充进来,一方面是为了记录,另一方面也可以帮助到大家… 网站名称及描述网址Elememt-ui (组件库)Elememt-ui&…...
Java运行时jar时终端输出的中文日志是乱码
运行Jar时在控制台输出的中文日志全是乱码,这是因为cmd/bash默认的编码是GBK,只要把cmd的编码改成UTF-8即可 两种方式修改:临时修改和注册表永久修改 临时修改 只对当前的cmd页面有效,关闭后重新打开都会恢复成GBK, 打开cmd&am…...
Vue框架--Vue中el和data的两种写法
data与el的2种写法 1.el有2种写法 (1).new Vue时候配置el属性。 (2).先创建Vue实例,随后再通过vm.$mount(#root)指定el的值。 2.data有2种写法 (1).对象式 (2).函数式 如何选择:目前哪种写法都可以,以后学习到组件时ÿ…...
【数据结构】 二叉树面试题讲解->贰
文章目录 🌏引言🎄[二叉树遍历](https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef?tpId60&&tqId29483&rp1&ru/activity/oj&qru/ta/tsing-kaoyan/question-ranking)🐱👤题目描述&#…...
C和SystemVerilog联合仿真
想要联合仿真一个c程序和verilog表示的硬件,可以用如下方法(DPI): 先写一个.c文件funcs.c #include <stdio.h> #include "svdpi.h"extern int sayHello();void something() {printf("something\n");s…...
15-mongodb
一、 MongoDB 简介 1 什么是 MongoDB MongoDB 是一个基于分布式文件存储的数据库。由 C语言编写。在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系…...
CSS学习笔记02
CSS笔记02 美化网页元素 为什么要美化网页 目的: 有效的传递页面信息美化网页、页面漂亮、才能吸引用户突显页面的主题提高用户的体验 span标签 span标签是短语内容的通用行内容器,它本身并没有任何特殊语义。 通常我们使用span标签来把我们想要重…...
为什么Java接口可以多继承,而类不可以?
个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…...
自动化信息收集工具 水泽 使用教程
自动化信息收集工具 水泽 使用教程 1.水泽简介&安装2.使用教程3.测试使用1.水泽简介&安装 一条龙服务,只需要输入根域名即可全方位收集相关资产,并检测漏洞。也可以输入多个域名、C段IP等 开发语言:Python3 水泽下载地址 安装前置准备: 当前用户对该目录有写权…...
2023年全国职业院校技能大赛(高等职业教育组)“信息安全管理与评估”理论技能答案
理论技能与职业素养(100分) 2023年全国职业院校技能大赛(高等职业教育组) “信息安全管理与评估”理论技能 【注意事项】 1.理论测试前请仔细阅读测试系统使用说明文档,按提供的账号和密码登录测试系统进行测试&am…...
MATLAB 动态图GIF
MATLAB 动态图GIF 前言一、创建动态图(动态曲线、动态曲面)1. 创建动画曲线(MATLAB animatedline函数)2. 创建动画曲面 二. 保存动态图三、完整示例1. 动态曲线( y s i n ( x ) ysin(x) ysin(x))2. 动态曲…...
ChatGPT⼊门到精通(4):ChatGPT 为何⽜逼
⼀、通⽤型AI 在我们原始的幻想⾥,AI是基于对海量数据的学习,锻炼出⼀个⽆所不知⽆所不能的模 型,并借助计算机的优势(计算速度、并发可能)等碾压⼈类。 但我们⽬前的AI,不管是AlphaGo还是图像识别算法&am…...
数据分析基础-数据可视化学习笔记03-可视化的符号与表示-图形符号学
概念 图型符号学(Cartographic Symbolization)是地图学领域中的一个重要概念,涉及到如何使用不同的符号、颜色、图案和标记来在地图上表示地理信息和数据。图型符号学旨在传达地理信息,使得地图能够清晰、有效地传达各种空间数据…...
暴力递归转动态规划(四)
题目 规定1对应A、2对应B、3对应C…26对应Z,那么一个数字字符串比如"111",就可以转化为:“AAA”、“KA"或"AK”,给定一个数字字符组成的字符串str,返回有多少种转化结果。 解释一下,字…...
大数据项目实战(Sqoop安装)
一,搭建大数据集群环境 1.4 Sqoop安装 1.sqoop安装 (1)上传安装包 (2)解压安装包 tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /export/servers (3)重命名 mv sqoop-1.4.6.b…...
android——spinner下拉弹窗、popupwindow下拉弹窗列表
一、spinner下拉弹窗 效果图如下: adapter的代码: package com.yaona.spinnerimport android.R import android.content.Context import android.graphics.Color import android.view.LayoutInflater import android.view.View import android.view.Vie…...
【阿里淘天】淘天20230824真题一、二 <模拟、双指针>
一、 题目描述: 小红有一个01字符串,她可以进行最多k次提作,每次操作可以交换相邻的两个字符,问可以得到的字典序最小的字符串是什么 输入描述: 一行两个整数 n 和 k,表示字符串的长度和可以进行的操作…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
