面试官问我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,表示字符串的长度和可以进行的操作…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
