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的更多相关文章

  1. mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法

    mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法 官方mysql一个slave只能对应一个master,mariadb 10开始支持多源 ...

  2. EasyNVR智能云终端硬件使用场景分析:如何实现软硬一体的视频上云整体解决方案

    背景分析 在于众多的客户交流中,经常会被客户问到,"EasyNVR到底是软件还是硬件?"."EasyNVR能否出一个硬件的版本,摆脱自建服务器的压力?".&qu ...

  3. MySQL死锁系列-常见加锁场景分析

    在上一篇文章<锁的类型以及加锁原理>主要总结了 MySQL 锁的类型和模式以及基本的加锁原理,今天我们就从原理走向实战,分析常见 SQL 语句的加锁场景.了解了这几种场景,相信小伙伴们也能 ...

  4. TYPESDK手游聚合SDK服务端设计思路与架构之一:应用场景分析

    TYPESDK 服务端设计思路与架构之一:应用场景分析 作为一个渠道SDK统一接入框架,TYPESDK从一开始,所面对的需求场景就是多款游戏,通过一个统一的SDK服务端,能够同时接入几十个甚至几百个各 ...

  5. Oracle dbms_lock.sleep()存储过程使用技巧-场景-分析-实例

    <Oracle dbms_lock.sleep()存储过程使用技巧>-场景-分析-实例 摘要:今天是2014年3月10日,北京,雾霾,下午组织相关部门开会.会议的结尾一名开发工程师找到了我 ...

  6. 理解 python metaclass使用技巧与应用场景分析

    理解python metaclass使用技巧与应用场景分析       参考: decorator与metaclass:http://jfine-python-classes.readthedocs. ...

  7. 数据结构之链表C语言实现以及使用场景分析

    牢骚:本篇博客两个星期前已经存为草稿,鉴于发生一些糟糕的事情,今天才基本完成.本人6月份应届毕业生一枚,毕业后当天来到帝都,之后也非常顺利,面试了俩家公司都成功了.一家做C++方面电商ERP,一家做w ...

  8. ThreadLocal的理解与应用场景分析

    对于Java ThreadLocal的理解与应用场景分析 一.对ThreadLocal理解 ThreadLocal提供一个方便的方式,可以根据不同的线程存放一些不同的特征属性,可以方便的在线程中进行存 ...

  9. Java 常用List集合使用场景分析

    Java 常用List集合使用场景分析 过年前的最后一篇,本章通过介绍ArrayList,LinkedList,Vector,CopyOnWriteArrayList 底层实现原理和四个集合的区别.让 ...

随机推荐

  1. Spring之RMI 远程方法调用 (Remote Method Invocation)

    RMI 指的是远程方法调用 (Remote Method Invocation) 1. RMI的原理: RMI系统结构,在客户端和服务器端都有几层结构. 方法调用从客户对象经占位程序(Stub).远程 ...

  2. centos下使用fdisk扩展分区容量大小

    硬盘空间为20G,VMware增加磁盘大小,需要再增加10G空间 扩展完后,重启系统,再次使用fdisk -l查看,会发现硬盘空间变大了: 重新创建分区,调整分区信息 本次实验主要对/dev/sda4 ...

  3. GO学习笔记:函数defer

    Go语言中有种不错的设计,即延迟(defer)语句,你可以在函数中添加多个defer语句.当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回.特别是当你在进行一些打开资源的操作时,遇 ...

  4. XML转Map

    public static Map<String, String> xmlToMap(HttpServletRequest request) throws IOException, Doc ...

  5. 最大流EK算法/DINIC算法学习

    之前一直觉得很难,没学过网络流,毕竟是基础知识现在重新来看. 定义一下网络流问题,就是在一幅有向图中,每条边有两个属性,一个是cap表示容量,一个是flow 表示流过的流量.我们要求解的问题就是从S点 ...

  6. 0 与 “0" 与 '\0' 与 '0'相互之间的区别

    1. '\0'和‘0’都是字符,对应的ASCII值分别是0和48. 2. 0表示一个数字.也可以表示ASCII值,对应字符'\0'. 3. “0”表示字符串,第一个字符是'0'.

  7. visualvm监控jvm及远程jvm监控方法

    VisualVM是Sun的一个OpenJDK项目,其目的在于为Java应用创建一个整套的问题解决工具.它集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览H ...

  8. apply 无循环拼接数组

    apply()第二个参数只能是数组,这个数组将作为参数传给原函数的参数列表arguments. 其实在实际开发中,JS 继承的方法并不止这一种,使用原型链继承是更加常用的方式,此外还有构造函数继承,这 ...

  9. AlexNet神经网络结构

    Alexnet是2014年Imagenet竞赛的冠军模型,准确率达到了57.1%, top-5识别率达到80.2%. AlexNet包含5个卷积层和3个全连接层,模型示意图: 精简版结构: conv1 ...

  10. 首次尝试LINUX下的ssh命令:登录和退出

    1:我现在本机安装了centos虚拟机,然后在windows桌面下使用SecureCRT ssh客户端登录我的本地虚拟机,再然后 通过centos下的ssh命令登录局域网内测试机192.168.0.1 ...