第三方引擎应用场景分析--Tokudb,infobright
TokuDB
TokuDB的特色:
• Fractal Tree而不是B-Tree
• 内部结点不仅有指向父子的指针还有Buffer区,数据写入先写buffer区,FIFO结构,写入只需要顺序添加到Buffer区就可返回,后续满时一次性刷新到下面的子树中,
插入数据基本上是一个顺序添加的过程。可轻松应对随机IO,减少空间碎片。
• 出色的压缩性能
• 块大小默认是4MB
• 在线DDL
TokuDB特别适合像 Zabbix 这种高 INSERT,少 UPDATE 的应用场景
TokuDB的Log
•log manager来管理log文件,InnoDB的rotate log效果
•为了并发性能,log在实现上,分: in buffer和out buffer
•支持group commit
•只有redo log ,不压缩,顺序写文件
infobright是开源的MySQL数据仓库解决方案,引入了列存储方案,高强度的数据压缩,优化的统计计算(类似sum/avg/group by之类)。
infobright优点:
1、高压缩比率,平均压缩比可达10:1,甚至可以达到40:1,我用infobright把3.1G的数据存成不足300M。
2、列存储,即使数据量十分巨大,查询速度也很快。用于数据仓库,处理海量数据没一套可不行。
3、不需要建索引,就避免了维护索引及索引随着数据膨胀的问题。把每列数据分块压缩存放,每块有知识网格节点记录块内
的统计信息,代替索引,加速搜索。
4、单一台服务器可以高效地读写30T数据。具有可扩展性,这里是指对于同样的查询,当数据量是10T时,它耗费的时间不应该比
1T数据量时慢太 多,基本是一个数量级内
缺点、限制:--企业版支持dml,在线热备
1.不支持DML
2.不支持多核
3.不支持分布式
loader与unloader是infobright的数据导入导出模块,也即处理SQL语句里LOAD DATA INFILE … 与SELECT … INTO FILE任务
逻辑层的infobright优化器包在mysql查询优化器的外面,因为它的存储层有一些特殊结构,所以查询优化方式也跟 mysql有很大差异
存储层最底层是一个个的Data Pack(数据块)。每一个Pack装着某一列的64K个元素,所有数据按照这样的形式打包存储,
每一个数据块进行类型相关的压缩(即根据不同数据类型采 用不同的压缩算法),压缩比很高。它上层的压缩器与解压缩器就做了这个事情。
Knowledge Grid(知识网格)中包含两类结点
• 每个Data Pack Node(数据包节点)对应于一个Data Pack,存储该Data Pack的一些统计信息,如min, max, avg, null个数、
单元总数count、sum总数等,甚至不同值的量等等;
• KN(Knowledge Node,知识节点)则存储了一些更高级的统计信息,以及与其它表的连接信息,这里面的信息有些是数据载入时已
经算好的,有些是随着查询进行而计算的,所以说是具备一定的“智能”的。
infinidb--列式
一个实际的例子:
tar -zxf <srcfile&get;
cd mysql
./configure --prefix=/usr/local/Calpont/mysql
make
make install
cd ../infinidb
./configure --prefix=/usr/local/Calpont
make
make install
预安装:
/usr/local/Calpont/bin/ post-install
配置:
/usr/local/Calpont/bin/postConfigure
设置别名
. /usr/local/Calpont/bin/calpontAlias
/etc/init.d/infinidb 脚本来启停infinidb
create table caltest (col1 int, col2 int) engine=infinidb
执行cpimport导入数据
/usr/local/Calpont/bin/cpimport calpont caltest caltest.tbl
cpimport 导入的速度非常快,应该是绕过MySQL层,直接通过API写入数据,千万行级数据,一般只需要1分钟左右
语法特性:
1、不支持的语法:insert into .... select ....
ERROR 138 (HY000): The syntax is not supported.
2、不支持的语法:1.05及以前版本不支持子查询
3、infinidb支持事务日志:
InfiniDB事务日志记录了DDL/DML语句和bulk load marker,使用syslog实现
事务日志默认名称是/var/log/Calpont/data/data_mods.log
第三方引擎应用场景分析--Tokudb,infobright的更多相关文章
- mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法
mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法 官方mysql一个slave只能对应一个master,mariadb 10开始支持多源 ...
- EasyNVR智能云终端硬件使用场景分析:如何实现软硬一体的视频上云整体解决方案
背景分析 在于众多的客户交流中,经常会被客户问到,"EasyNVR到底是软件还是硬件?"."EasyNVR能否出一个硬件的版本,摆脱自建服务器的压力?".&qu ...
- MySQL死锁系列-常见加锁场景分析
在上一篇文章<锁的类型以及加锁原理>主要总结了 MySQL 锁的类型和模式以及基本的加锁原理,今天我们就从原理走向实战,分析常见 SQL 语句的加锁场景.了解了这几种场景,相信小伙伴们也能 ...
- TYPESDK手游聚合SDK服务端设计思路与架构之一:应用场景分析
TYPESDK 服务端设计思路与架构之一:应用场景分析 作为一个渠道SDK统一接入框架,TYPESDK从一开始,所面对的需求场景就是多款游戏,通过一个统一的SDK服务端,能够同时接入几十个甚至几百个各 ...
- Oracle dbms_lock.sleep()存储过程使用技巧-场景-分析-实例
<Oracle dbms_lock.sleep()存储过程使用技巧>-场景-分析-实例 摘要:今天是2014年3月10日,北京,雾霾,下午组织相关部门开会.会议的结尾一名开发工程师找到了我 ...
- 理解 python metaclass使用技巧与应用场景分析
理解python metaclass使用技巧与应用场景分析 参考: decorator与metaclass:http://jfine-python-classes.readthedocs. ...
- 数据结构之链表C语言实现以及使用场景分析
牢骚:本篇博客两个星期前已经存为草稿,鉴于发生一些糟糕的事情,今天才基本完成.本人6月份应届毕业生一枚,毕业后当天来到帝都,之后也非常顺利,面试了俩家公司都成功了.一家做C++方面电商ERP,一家做w ...
- ThreadLocal的理解与应用场景分析
对于Java ThreadLocal的理解与应用场景分析 一.对ThreadLocal理解 ThreadLocal提供一个方便的方式,可以根据不同的线程存放一些不同的特征属性,可以方便的在线程中进行存 ...
- Java 常用List集合使用场景分析
Java 常用List集合使用场景分析 过年前的最后一篇,本章通过介绍ArrayList,LinkedList,Vector,CopyOnWriteArrayList 底层实现原理和四个集合的区别.让 ...
随机推荐
- 用java实现单链表
对于一个单链表来说,要求有最基本的数据节点以及一些重要的方法. 方法应该有增删改查.定位.输出.获取链表长度.排序.链表读入.链表输出.下面是我用java写的单链表 public class List ...
- yii2: oralce中文,有的汉字是2个字节,有的汉字是3个字节
yii2: oralce中文,有的汉字是2个字节,有的汉字是3个字节 请用mb_substr转成1个英文字节
- GO学习笔记:函数传值与传指针
当我们传一个参数值到被调用函数里面时,实际上是传了这个值的一份copy,当在被调用函数中修改参数值的时候,调用函数中相应实参不会发生任何变化,因为数值变化只作用在copy上. 为了验证我们上面的说法, ...
- charles抓包工具的使用:概述
一. 什么是包 用户和后台客户端之间的请求数据,都是以包的形式来传递的,具体要深究,可以去看看这方面的网络知识 二. 为何要抓包 1) 可以用来分析网络流量 2) 可以用来破译抓来的数据,比如密码之类 ...
- 51nod1241 lis变形
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1241 1241 特殊的排序 题目来源: 摩根斯坦利的比赛题 基准时间限制 ...
- vue.js相关资料
1.https://cn.vuejs.org/v2/guide/ (中文文档)
- HTML 中 id与name 区别
一个name可以同时对应多个控件,比如checkbox和radio而id必须是全文档中唯一的 id的用途1) id是HTML元素的Identity,主要是在客户端脚本里用.2) label与form控 ...
- ASM9260T开发板使用
ifconfig eth0 192.168.1.66 netmask 255.255.255.0 up //设备iproute add default gw 192.168.1.1 //添加网 ...
- Sublime Text 3打开gbk编码的文件中文乱码的问题
正在开发Wordpress主题,网上下载了一个博客模板,打开之后,发现里面的中文全是乱码 毕竟这玩意是外国人的东西,gbk是中文专用的编码,不支持很正常. 网上查了一下资料,需要安装一个Convert ...
- linux操作系统安全防护
Linux系统攻防对抗实践 一.实践内容 在Metasploit渗透攻击框架软件中寻找一个针对Linux系统服务的渗透攻击模块,在网络安全攻防实验环境中部署有漏洞的环境(如渗透利用第三方网络服务,需要 ...