第三方引擎应用场景分析--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 底层实现原理和四个集合的区别.让 ...
随机推荐
- datetimepicker
<!DOCTYPE html> <html> <head> <title></title> <link href="./bo ...
- 简易的解决方式linker command failed with exit code 1 (use -v to see invocation)
linker command failed with exit code 1 (use -v to see invocation) 遇到这个问题先不要慌,不用纠结是不是自己改动了什么代码导致的. 长话 ...
- localhost不能访问127.0.0.1可以访问的原因以及解决办法
今天在调试程序的时候,出现了一个奇怪问题,localhost不能访问但127.0.0.1可以访问? localhost与127.0.0.1的概念和工作原理之不同 要比较两个东西有什么不同,首先要弄清两 ...
- window cmd
切换目录盘 直接 d: (e: f:) 在目录下切换文件用cd 文件名(可以加绝对路径 绝对路径可以到复制 也可以加相对路径) javac XXX.java 编译成字节码 Ja ...
- ubuntu16.04 安装OpenNI并运行kinnectfusion
由于OpenNI是ubuntu12.04以前使用的驱动kinnect的库,现在用起来有很多的不便,用心的系统运行旧的设备,有诸多问题.现总结流程如下: 环境:Ubuntu16.04 64bit Kin ...
- 完全卸载gitlab
完全卸载删除gitlab 2017年5月29日 wuhao 暂无评论 4,089次浏览 完全卸载删除gitlab 1.停止gitlab 1 gitlab-ctl stop 2.卸载gitlab ...
- MYSQL(python)安装记录
捯饬了很长时间,终于安装成功了,特此记录下! MYSQL历史版本下载,一般为绿色版本 地址:http://downloads.mysql.com/archives/community/ MYSQL安装 ...
- mongodb底层存储和索引原理——本质是文档数据库,无表设计,同时wiredTiger存储引擎支持文档级别的锁,MMAPv1引擎基于mmap,二级索引(二级是文档的存储位置信息『文件id + 文件内offset 』)
MongoDB是面向文档的数据库管理系统DBMS(显然mongodb不是oracle那样的RDBMS,而仅仅是DBMS). 想想一下MySQL中没有任何关系型数据库的表,而由JSON类型的对象组成数据 ...
- elasticsearch负载均衡节点——客户端节点 node.master: false node.data: false 其他配置和master 数据节点一样
elasticSearch的配置文件中有2个参数:node.master和node.data.这两个参 数搭配使用时,能够帮助提供服务器性能. 数据节点node.master: false node. ...
- TCPL学习笔记:4-12以及4-13。关于使用递归的问题。
4-12.写一个函数itoa,通过递归调用将整数转换成为字符串. #include <stdio.h> #include <stdlib.h> void Itoa(int nu ...