面试官问我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,表示字符串的长度和可以进行的操作…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
