- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
mariadb研究.
目录
1 概述 2
1.1. 版本 2
1.2. 兼容性 2
1.3. 目标 2
2 架构 3
3 特性与优势 6
3.1. MariaDB 5.5特性 6
3.2. MariaDB 10的主要特性 9
4 使用情况 9
5 性能对比测试 10
5.1. 测试环境 10
5.2. 测试结果解析 10
5.3. 测试总结 12
6 处理非结构化数据 13
6.1. 概述 13
6.2. 使用语法 13
6.3. 常见非结构化文件处理 15
6.3.1 DOS、FIX和FMT类型文件 15
6.3.2 CSV文件 18
6.3.3 XML文件 20
6.3.4 JSON 26
概述
MariaDB 数据库管理系统作为MySQL的一重要个分支,是一个向后兼容、替代MySQL的数据库管理系统,主要由MySQL的创始人Michael Widenius主导开发,目前由开源社区在维护,采用GPL授权许可;MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。存储引擎方面,默认使用基于事务的XtraDB(InnoDB的变体)来代替MySQL的InnoDB。
版本
MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB 5.5的人会从MySQL 5.5中了解到MariaDB的所有功能。
从2012年11月12日起发布的10.0.0版开始,不再依照MySQL的版号。10.0.x版以5.5版为基础,加上移植自MySQL 5.6版的功能和自行开发的新功能当前最新为。
兼容性
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,可以工作很好。MariaDB每月会与MySQL代码库合并来确保MariaDB的兼容性和得到任何Oracle修正的bug和所有特性。
目标
提供一个由社区开发的、稳定的、总是免费的MySQL分支,在用户级别上兼容主流版本。
架构
整体上来说,MariaDB的体系结构可以分为三层。最上层负责处理客户端的连接请求包括连接处理、授权认证、安全等第二层是MariaDB的核心层,作为一个数据库,最基本最核心的功能都在这一层这一层的主要功能有查询、分析优化和缓存第三层则包含了存储引擎一般来说,存储引擎负责数据的存放和提取存储引擎更加面向底层,负责和底层的文件系统的交互。
用如下一张最简单的架构示意图来表示 MariaDB Server的基本架构:
各层详细介绍如下:
第一层:不同语言与SQL的交互,服务于C/S程序或者是这些程序所需要的:连接处理,身份验证,安全性等等。
在服务器内部,每个client连接都有自己的线程。这个连接的查询都在一个单独的线程中执行。这些线程轮流运行在某一个CPU内核(多核CPU)或者CPU中。服务器缓存了线程,因此不需要为每个client连接单独创建和销毁线程 。
当应用程序连接到了MariaDB服务器。服务器需要对它进行认证。认证是基于用户名主机密码。对于使用了SSL(安全套接字层)的连接,还使用了X.509证书。lients一连接上,服务器就验证它的权限 。
第二层是MariaDB的核心部分。通常叫做 SQL Layer。在 MariaDB数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,SQL解析,执行计划,优化query cache 的处理以及所有内置的函数(如日期时间数学运算加密)等等。各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视图等。
M会解析查询,并创建了一个内部数据结构(解析树)。然后对其进行各种优化。这些优化包括查询语句的重写,读表的顺序,索引的选择等等。用户可以通过查询语句的关键词传递给优化器以便提示使用哪种优化方式,这样即影响了优化器的优化方式。另外,用户也可以请求服务器给出优化过程的各种说明,以获知服务器的优化策略,为用户提供了参数基准,以便用户可以重写查询,架构和修改相关服务器配置,便于MariaDB更高效的运行。
优化器并是不关心表使用了哪种存储引擎,但是存
文档评论(0)