选择MariaDB的压缩数据引擎TokuDB
业务运用场景
- 数据基本不用update, 不频繁的范围查询
- 数据存储量较大(为以后准备)
- 选择占用磁盘较小的db
- 业务对数据库插入操作频繁,为避免影响其它业务,需要将直播业务的DB 独立出来,选择另外的db
db类型分析(只做简单表达,有兴趣可以自行了解)
sqlite
优点
- 整个数据库都包含在磁盘上的一个文件中,因此它有很好的迁移性
- 功能简约,小型化,追求最大磁盘效率
- 支持数据库大小至2TB
缺点
- SQLite 的数据库权限只依赖于文件系统,没有用户帐户的概念,
- SQLite 的缺陷之一是它的写入操作。这个数据库同一时间只允许一个写操作,因此吞吐量有限, mysql 连接插入5000条的时间是2.56秒,sqlite 是46.5秒 (本机操作)
- 不支持分布式
MongoDB
- 占用的空间很大,榆社政府网站因为它属于典型空间换时间原则的类型(直接不选择)
- 数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象
HBase (基本不符合应用场景)
- 海量数据存储能力,超高的数据读写性能
- HBase 不能支持 where 条件、Order by 查询,只支持按照主键 Rowkey 和主键的 range 来查询,但是可以通过 HBase 提供的 API 进行条件过滤
MariaDB(TokuDB 存储引擎TOKUDB_ZLIB 压缩算法)
优点
- TokuDB 除了支持现有的索引类型外, 还增加了(第二)集合索引, 以满足多样性的覆盖索引的查询, 费县县情网在快速创建索引方面提高了查询的效率
- 数据压缩。 官方的建议: 6核数以下的机器建议标准压缩, 反之可以使用高级别的压缩。
- 高压缩比,默认使用zlib进行压缩,尤其是对字符串(varchar,text等)类型有非常高的压缩比,比较适合存储日志、原始数据等。官方宣称可以达到1:12
- 在线添加索引,不影响读写操作
- 非常快的写入性能, Fractal-tree在事务实现上有优势,无undo log,官方称至少比innodb高9倍
- 数据量可以扩展到几个TB;
- 不会产生索引碎片
缺点:
- 不支持外键(foreign key)功能,如果您的表有外键,切换到 TokuDB引擎后,此约束将被忽略
- TokuDB 不适大量读取的场景,因为压缩解压缩的原因。CPU占用会高2-3倍,但由于压缩后空间小,IO开销低,平均响应时间大概是2倍左右。
- online ddl 对text,blob等类型的字段不适用
- 没有完善的热备工具,只能通过mysqldump进行逻辑备份
适用场景
- 访问频率不高的数据或历史数据归档
- 范围查询多
空间占用对比(一个索引)
类型 | 10W | 20W | 30W | 100W |
---|---|---|---|---|
mysql5.7(innodb) | 17M | 27M | 36M | 100M |
mysql5.7(myisam) | 5.8M | 11.8M | 17.9M | 59.7M |
sqlite3 | 7.2M | - | - | - |
mariadb(totudb) | 1.1M | 3.1M | 4.6M | 14.29M |
查询对比
类型 | 10W | 5W |
---|---|---|
mysql5.7 | 0.21 | 0.10 |
sqlite3 | 0.30 | 0.14 |
mariadb | 0.19 | 0.07 |
写入对比
类型 | 5000次 | 50000次 |
---|---|---|
mysql5.7 | 2.56 | 0.10 |
sqlite3 | 46.5 | 0.14 |
mariadb | 1.69 | 21.86 |
综合分析
- MariaDB(TokuDB 存储引擎) 场景基本全符合, 目前阿里,腾讯都有在线上使用(采用)
- sqlite 空间不占优势、整体速度不占优势(不采用)
- HBase 不能支持 where 条件、Order by 查询,只支持按照主键 Rowkey 和主键的 range 来查询,但是可以通过 HBase 提供的 API 进行条件过滤(不采用)
- MongoDB 占用空间大 (不采用)
- mysql5.7(myisam) 占用空间适中,但不是最优 (不采用)
选择MariaDB的压缩数据引擎TokuDB的更多相关文章
- 试用阿里云RDS的MySQL压缩存储引擎TokuDB
以前就用过自己搭建MySQL服务器的两种存储引擎MyISAM和InnoDB(也用过一点Memory方式),在今年初转向阿里云关系型数据库服务RDS的时候,看到可调参数中有一个TokuDB,不过不太了解 ...
- TokuDB · 引擎特性 · HybridDB for MySQL高压缩引擎TokuDB 揭秘
原文出处:阿里云RDS-数据库内核组 HybridDB for MySQL(原名petadata)是面向在线事务(OLTP)和在线分析(OLAP)混合场景的关系型数据库.HybridDB采用一份数据存 ...
- 数据库对比:选择MariaDB还是MySQL?
作者 | EverSQL 译者 | 无明 这篇文章的目的主要是比较 MySQL 和 MariaDB 之间的主要相似点和不同点.我们将从性能.安全性和主要功能方面对这两个数据库展开对比,并列出在选择数据 ...
- MySQL/MariaDB数据库的存储引擎
MySQL/MariaDB数据库的存储引擎 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL体系结构 连接管理模块: 负责接收远程用户的连接. 线程管理模块: 维护 ...
- 你需要知道的MySQL开源存储引擎TokuDB
在四月份的Percona Live MySQL会议上, TokuDB庆祝自己成为开源存储引擎整一周年.我现在仍能记得一年前它刚创建时的官方声明与对它的期望.当时的情况非常有意思,因为它拥有帮助MySQ ...
- MySql中启用InnoDB数据引擎的方法
1.存储引擎是什么? Mysql中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术, ...
- 修改mysql数据引擎的方法- 提高数据库性能
前言:同学告我说,他为了能使得数据查询变得快一点,修改的数据引擎,故查询一下,总结一下. 登录mysql后,查看当前数据库支持的引擎和默认的数据库引擎,使用下面命令: mysql>show en ...
- MySQL的数据引擎讲解
一.MySQL的数据引擎讲解 在MySQL数据库中,常用的引擎主要就是2个:Innodb和MyIASM. 1.简单介绍这两种引擎,以及该如何去选择. a.Innodb引擎,Innodb引擎提供了对数据 ...
- 【2019V2全新发布】ComponentOne .NET开发控件集,新增.NET Core数据引擎
ComponentOne .NET开发控件集 2019V2正式发布,除持续完善并加入全新的.NET开发控件外,还针对产品架构稳定性.易用性.与.NET Core平台深度集成.已有控件功能增强等多个方面 ...
随机推荐
- lasagne保存网络参数
# Optionally, you could now dump the network weights to a file like this: # np.savez('model.npz', *l ...
- javaweb基础(38)_事务
一.事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 例如:A——B转帐,对应于如下两条sql语句 update from account set mone ...
- office2010激活
软件下载链接: http://yunpan.cn/cySGrE99u6uv3 (提取码:c612) 下面是操作演示,我录制成gif文件了,下载下来用浏览器打开 360网盘:http://yunpan. ...
- CUDA数组分配
原问链接 概述:数组分配可以通过cudaMallocArray()和cudaMalloc3DArray() 1.cudaMallocArray() cudaError_t cudaMallocArra ...
- deep learning书的阅读
最近坚持读书,虽然大多数读的都是一些闲书,传记.历史或者散文之类的书籍,但是也读了点专业书.闲书是散时间读的,放车里,有时间就拿起来读读,专业书则更多的靠得是专注.因为我给自己的规定是一定时间内读完几 ...
- java基础必备单词讲解 day six
development development development development 开发 development developmentenvironment environment en ...
- 写一个addEventListener以及removeEventListener
第一步:对象属性赋值为函数,对象内部函数控制年龄这一参数变化,同时成长事件也执行. class Person{ constructor(){ this.name = ''; this.age = 0; ...
- C#后台动态添加Grid表格
前面页面: <ScrollViewer x:Name=" BorderBrush="#25A0DA" VerticalScrollBarVisibility=&qu ...
- 图解HTTP-1.web和网络基础
目录 1. 3 项 WWW 构建技术 2. TCP/IP 是互联网相关的各类协议族的总称 协议(protocol) TCP/IP分层管理 TCP/IP通信传输流 封装(encapsulate) 3. ...
- JQuery制作网页—— 第一章 JavaScript基础
1. JavaScript(弱类型语言):是一种描述性语言,也是一种基于对象(Object)和事件驱动(Event Driven)的,并具有安全性能的脚本语言. 特点:1.主要用来在HTML页面中添加 ...