选择MariaDB的压缩数据引擎TokuDB

业务运用场景

  1. 数据基本不用update, 不频繁的范围查询
  2. 数据存储量较大(为以后准备)
  3. 选择占用磁盘较小的db
  4. 业务对数据库插入操作频繁,为避免影响其它业务,需要将直播业务的DB 独立出来,选择另外的db

db类型分析(只做简单表达,有兴趣可以自行了解)

sqlite

优点

  1. 整个数据库都包含在磁盘上的一个文件中,因此它有很好的迁移性
  2. 功能简约,小型化,追求最大磁盘效率
  3. 支持数据库大小至2TB

缺点

  1. SQLite 的数据库权限只依赖于文件系统,没有用户帐户的概念,
  2. SQLite 的缺陷之一是它的写入操作。这个数据库同一时间只允许一个写操作,因此吞吐量有限, mysql 连接插入5000条的时间是2.56秒,sqlite 是46.5秒 (本机操作)
  3. 不支持分布式

MongoDB

  1. 占用的空间很大,榆社政府网站因为它属于典型空间换时间原则的类型(直接不选择)
  2. 数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象

HBase (基本不符合应用场景)

  1. 海量数据存储能力,超高的数据读写性能
  2. HBase 不能支持 where 条件、Order by 查询,只支持按照主键 Rowkey 和主键的 range 来查询,但是可以通过 HBase 提供的 API 进行条件过滤

MariaDB(TokuDB 存储引擎TOKUDB_ZLIB 压缩算法)

优点

  1. TokuDB 除了支持现有的索引类型外, 还增加了(第二)集合索引, 以满足多样性的覆盖索引的查询, 费县县情网在快速创建索引方面提高了查询的效率
  2. 数据压缩。 官方的建议: 6核数以下的机器建议标准压缩, 反之可以使用高级别的压缩。
  3. 高压缩比,默认使用zlib进行压缩,尤其是对字符串(varchar,text等)类型有非常高的压缩比,比较适合存储日志、原始数据等。官方宣称可以达到1:12
  4. 在线添加索引,不影响读写操作
  5. 非常快的写入性能, Fractal-tree在事务实现上有优势,无undo log,官方称至少比innodb高9倍
  6. 数据量可以扩展到几个TB;
  7. 不会产生索引碎片

缺点:

  1. 不支持外键(foreign key)功能,如果您的表有外键,切换到 TokuDB引擎后,此约束将被忽略
  2. TokuDB 不适大量读取的场景,因为压缩解压缩的原因。CPU占用会高2-3倍,但由于压缩后空间小,IO开销低,平均响应时间大概是2倍左右。
  3. online ddl 对text,blob等类型的字段不适用
  4. 没有完善的热备工具,只能通过mysqldump进行逻辑备份

适用场景

  1. 访问频率不高的数据或历史数据归档
  2. 范围查询多

空间占用对比(一个索引)

类型 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

综合分析

  1. MariaDB(TokuDB 存储引擎) 场景基本全符合, 目前阿里,腾讯都有在线上使用(采用)
  2. sqlite 空间不占优势、整体速度不占优势(不采用)
  3. HBase 不能支持 where 条件、Order by 查询,只支持按照主键 Rowkey 和主键的 range 来查询,但是可以通过 HBase 提供的 API 进行条件过滤(不采用)
  4. MongoDB 占用空间大 (不采用)
  5. mysql5.7(myisam) 占用空间适中,但不是最优 (不采用)

原文地址:https://www.cnblogs.com/tianshifu/p/8410822.html

时间: 2024-11-17 12:21:39

选择MariaDB的压缩数据引擎TokuDB的相关文章

MySql中启用InnoDB数据引擎的方法

1.存储引擎是什么? Mysql中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能.这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型).MySql默认配置了许多不同的存储引擎,可以预先设置或者在MySql服务器中启用. 2.MYSQL支持的数据引擎 MyISAM:默认的MySQL插件式存储引擎,它是

如何选择纠删码编码引擎 | 纠删码技术详解(上)

作者介绍: 徐祥曦,七牛云工程师,独立开发了多套高性能纠删码/再生码编码引擎.柳青,华中科技大学博士,研究方向为基于纠删码的分布式存储系统. 前言:随着数据的存储呈现出集中化(以分布式存储系统为基础的云存储系统)和移动化(互联网移动终端)的趋势,数据可靠性愈发引起大家的重视.集群所承载的数据量大大上升,但存储介质本身的可靠性进步却很小,这要求我们必须以更加经济有效的方式来保障数据安全. 副本与纠删码都是通过增加冗余数据的方式来保证数据在发生部分丢失时,原始数据不发生丢失.但相较于副本,纠删码能以

MySql中启用InnoDB数据引擎简介 以及 InnoDB与 MYISAM的区别和联系

1.存储引擎是什么? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能.这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型).MySql默认配置了许多不同的存储引擎,可以预先设置或者在MySql服务器中启用. 2.MYSQL支持的数据引擎 MyISAM:默认的MySQL插件式存储引擎,它是

mysql数据引擎的概念介绍

什么是数据库引擎?每种数据库的数据格式,内部实现机制都是不同的,要利用一种开发工具访问一种数据库,就必须通过一种中介程序,这种开发工具与数据库之间的中介程序就叫数据库引擎. 如果你是个赛车手并且按一下按钮就能够立即更换引擎而不需要把车开到车库里去换,那会是怎么感觉呢?MySQL数据库为开发人员所做的就好像是按按钮换引擎:它让你选择数据库引擎,并给你一条简单的途径来切换它. MySQL 的自带引擎肯定是够用了,但是在有些情况下,其他的引擎可能要比手头所用更适合完成任务.如果愿意的话,你甚至可以使用

大数据引擎,李彦宏的新大陆

摘要 : 百度将用互联网的方式来做开放的大数据引擎.它不可能采取与软件方案公司一样的“一竿子买卖”方式进行合作.而是将大数据引擎做成一个开放平台,形成标准的接口,让每个行业不同企业可以根据自身需求各取所需.而它的首要目的是获取数据,然后是考虑变现. 百度在大数据领域迈出一大步.在昨天的百度技术开放日上,李彦宏现身并推出了百度大数据引擎.简单地将,大数据引擎将百度在大数据的数据.能力和技术开放给行业,行业尝尝距离甚远的大数据盛宴,百度则寻到了一个新的增长点. 大数据引擎三件套 一年前,BAT纷纷开

修改mysql数据引擎的方法- 提高数据库性能

前言:同学告我说,他为了能使得数据查询变得快一点,修改的数据引擎,故查询一下,总结一下. 登录mysql后,查看当前数据库支持的引擎和默认的数据库引擎,使用下面命令: mysql>show engines; +--------------------+---------+-------------------------------------------------------------------------------------------------------+----------

数据引擎 创建表完整语法,字段类型,约束条件

数据引擎 创建表完整语法,字段类型,约束条件 回顾: 1.设置密码与修改密码 mysqladmin -uroot -p password设置的密码 mysqladmin -uroot -p原密码 password新密码 2.破解密码 - 1.先关掉服务,杀死进程 - 2.跳过权限认证启动服务端 - 3.以游客的身份登录即可 3.制作服务 - 1.mysql --install - 2.net start mysql 4.语法: 库的操作: 增: create database 库名; creat

开源数据引擎-介绍(附源码)

NetUML.DataEngine 数据引擎支持多数据库,数据访问引擎采用配置方式,类似ibatis.net底层原理,支持多数据库连接方式.将来可支持数据库读写分离,读写分离配置采用MVC路由机制. 源码结构 一.配置介绍 providers.config 配置文件名称,只需把它放在程序的根目录下即可. 1 <provider name="oracleManagedDataAccess" 2 description="Oracle, Microsoft provider

企业选择多处地理位置数据中心的意义

尽管美国许多的大型科技公司都位于硅谷,但其实他们的数据往往并不是存储在硅谷.现如今,不仅这些大型科技企业,甚至包括越来越多的初创型企业也都正在积极的寻求将他们的数据存储在加州以外,转而将目标投向了美国中西部和东海岸,以租赁数据中心服务空间. 这些科技企业所考虑的不仅仅只是一处数据中心选址.精明的且具有前瞻性的技术公司已然了解到,为了能够提供最佳的应用性能,减少延迟等待时间,接近最终用户是至关重要的,这通常也就意味着这些科技企业哪怕不能在全球范围内租赁数据中心服务空间,至少也需要在全国各地租用更多