【MariaDB】浅谈 MariaDB 数据库
MariaDB简述
1、总述:
MariaDB是MySQL数据库的一个分支,使用方法几乎与MySQL完全一致,包括命令、界面、使用等,根据官方介绍,在MariaDB 5.5版本之前,所欲的功能特性完全继承自MySQL,因此使用MariaDB 5.5的人会从MySQL 5.5中了解到MariaDB的所有功能。
但是从2012年11月12日起发布的10.0.0版开始,MariaDB不再依照MySQL的版号,而是10.0.x版以5.5版为基础,加上移植自MySQL 5.6版的功能和自行开发的新功能。
正因为是MySQL的一个分支和衍生版,因此各种特性与MySQL基本一致,所以用户在使用MariaDB时,几乎感觉不到其与MySQL的差异,这也是开发者开发MariaDB的初衷,那就是完全兼容并替代MySQL,包括API和命令行。
例如在集成平台XAMPP中,虽然数据库服务标为MySQL:
其实,真正的数据库服务不是MySQL,而是早已换成了MariaDB:
下面我们说一下为什么会出现MariaDB。
2、来源:
创建MariaDB数据库服务的原因之一,是因为MySQL的创始人Michael Widenius早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,之后SUN又被甲骨文公司(Oracle)收购,MySQL的所有权也落入Oracle的手中。
被甲骨文公司收购后,MySQL的开发者担心甲骨文公司会有将MySQL闭源的风险,所以创建了MySQL的一个分支,也就是免费开源的MariaDB数据库服务,完全兼容MySQL。MariaDB名称来自Michael Widenius的女儿Maria的名字。
虽然是分支,但是MariaDB在某些方面的性能强于MySQL,例如在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL。
当MariaDB被开发后,大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营,MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。
MariaDB与MySQL
既然MariaDB来自MySQL且几乎是复制产品,那么他们的关系不可不说。
1、兼容
MariaDB是MySQL的衍生数据库且完全兼容MySQL,而且从MySQL迁移到MariaDB也是非常简单的,具体体现在以下几个方面:
- 数据和表定义文件(.frm)是二进制兼容的
- 所有客户端API、协议和结构都是完全一致的
- 所有文件名、二进制、路径、端口等都是一致的
- 所有的MySQL连接器,比如PHP、Perl、Python、Java、.NET、MyODBC、Ruby以及MySQL C connector等在MariaDB中都保持不变
- mysql-client包在MariaDB服务器中也能够正常运行
- 共享的客户端库与MySQL也是二进制兼容的
也就是说,在大多数情况下,你完全可以卸载MySQL然后安装MariaDB,然后就可以像之前一样正常的运行。
2、优势
之前说,MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL,与 MySQL 相比较,MariaDB 更强的地方在于:
- 更优秀的存储引擎
(Aria 存储引擎、PBXT 存储引擎、XtraDB 存储引擎、 FederatedX 存储引擎) - 更快的复制查询处理
- 线程池
- 更少的警告和bug
- 运行速度更快
- 更多的 Extensions (More index parts, new startup options etc)
- 更好的功能测试
- 数据表消除
- 慢查询日志的扩展统计
- 支持对 Unicode 的排序
相对于MySQL最新的版本5.6来说,在性能、功能、管理、NoSQL扩展方面,MariaDB包含了更丰富的特性。比如微秒的支持、线程池、子查询优化、组提交、进度报告等。
——详见下图 (截图自百度百科):
3、引擎
MariaDB与MySQL使用的存储引擎是不一样的,准确说默认引擎是不一样的。
- MySQL的默认引擎是MyISAM和InnoDB
(MyISAM:MySQL 5.0 之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务)
(InnoDB:事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎) - MariaDB的默认引擎是XtraDB和Aria
(XtraDB:替换 InnoDB,是 Percona 开发维护的 InnoDB 威力加强版,整合Google、Facebook 等公司和 MySQL 社区的补丁)
(Aria:原名Maria,是基于事物的引擎,替代MyISAM)
使用 show engines;
查看数据库引擎。
查看MariaDB的存储引擎:
MariaDB [mysql]> show engines;
+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+
| CSV | YES | Stores tables as CSV files | NO | NO | NO |
| MRG_MyISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| Aria | YES | Crash-safe tables with MyISAM heritage. Used for internal temporary tables and privilege tables | NO | NO | NO |
| MyISAM | YES | Non-transactional engine with good performance and small data footprint | NO | NO | NO |
| SEQUENCE | YES | Generated tables filled with sequential values | YES | NO | YES |
| InnoDB | DEFAULT | Supports transactions, row-level locking, foreign keys and encryption for tables | YES | YES | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.011 sec)
查看MySQL的存储引擎:
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MyISAM | DEFAULT | MyISAM storage engine | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
MariaDB存储引擎总结(截图自网络)
4、默认库
通过以前的文章可以发现,一些实验以及默认库说明时,均使用的MariaDB,单其实MariaDB与MySQL中的默认库是一样的,也就是四个自带数据库:
- information_schema
- performance_schema
- mysql
- test
查看MariaDB中的自带库:
查看MySQL中的自带库:
两者一模一样。
因为XAMPP的数据库服务为MariaDB,但是MariaDB与MySQL的操作几乎无差别,因此以后的实验虽然使用的是MariaDB,但是依然会提示以MySQL为例。
暂时总结到此。
【MariaDB】浅谈 MariaDB 数据库相关推荐
- 管理中计算机系统的应用论文,浅谈计算机数据库的管理与应用论文
浅谈计算机数据库的管理与应用论文 摘要:随着社会经济的快速发展,信息化网络技术手段不断进步,信息技术在人们日常生活.工作及学习中的广泛渗透,不仅给人们生活带来了极大便利,还极大的提升了人们工作与学习效 ...
- 浅谈时序数据库(TSDB)
浅谈时序数据库(TSDB) 一.什么是时序数据库 二.时序数据库特点 基本特点 核心特性 三.补充知识 LSM树(LSM tree vs B tree) B tree LSM tree 总结 四.常见 ...
- 【转载】运维角度浅谈MySQL数据库优化
运维角度浅谈MySQL数据库优化 2015-06-02 14:22:02 标签:mysql优化 mysql分库分表分区 mysql读写分离 mysql主从复制 原创作品,允许转载,转载时请务必以 ...
- 浅谈计算机数据库技术的应用,浅谈计算机数据库技术的应用意义.doc
浅谈计算机数据库技术的应用意义.doc 浅谈计算机数据库技术的应用意义 [摘 要]随着计算机技术与网络通信技术的发展,数据库技术已成为信息社会中对大量数据进行组织与管理的重要技术手段及软件技术,是网络 ...
- 浅谈Oracle 数据库之间数据同步方案
随着信息技术的飞速发展,企业信息化建设的不断深入,使得企业业务系统数量不断增加.这时,各业务系统之间数据交互,各子业务系统与核心业务系统之间数据交互,诸如此类场景的应用需求不断出现.因此,IT部门应对 ...
- pymysq向mysql写数据 为什么本地无法查看_从运维角度浅谈MySQL数据库优化,中小企业DBA必会...
原文:http://www.enmotech.com/web/detail/1/712/1.html(复制链接,打开浏览器即可查看原文) 作者:搬砖游击队 一个成熟的数据库架构并不是一开始设计就具备高 ...
- 运维角度浅谈MySQL数据库优化(转自:2018-03-10 李振良 JAVA高级架构)
一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...
- 从运维角度浅谈MySQL数据库优化
一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...
- 从运维角度浅谈MySQL数据库优化,中小企业DBA必会
一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善. 这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致 ...
最新文章
- 刻意练习:LeetCode实战 -- Task09. 环形链表
- mysql忘记密麻麻_mysql忘记密码怎么办
- DOS命令行数据乱码解决
- python查看文档的软件_Python __doc__属性:查看文档
- 判断radio单选框是否选中
- Hadoop的Python框架指南
- 【BZOJ-1952】城市规划 [坑题] 仙人掌DP + 最大点权独立集(改)
- mysql in 文本_MySQL_mysql 的load data infile,LOAD DATA INFILE语句从一个文本文 - phpStudy...
- 驾驭大数据,全民打飞机(转)
- 【快速测试】TF02-i-CAN通过CAN分析仪与电脑通信操作教程
- 编写一个c语言源程序输出以下信息,C语言课后习题源程序(5页)-原创力文档...
- 重庆兴渝计算机培训中心,重庆兴渝职业中等专业学校招生录取分数线
- 用javaScript制作星空特效
- 用VS实现图片的读取、显示与存储
- 1	About This Guide
- mysql 获取农历年份_iOS 获取公历、农历日期的年月日
- mysql innodb_large_prefix
- 程序员面试100题之七 最长公共子字符串
- 学习/思考 - 优秀资源 - 收集
- 通过SecureCRT打开HCL模拟器命令行