brighthouse mysql_infobright初步评测

如上图所示,Infobright采用了和MySQL一致的构架,分为两层。

上层是服务及应用管理,下层是存储引擎。

Infobright的默认存储引擎是brighthouse,但是Infobright还可以支持其他的存储引擎,比如MyISAM、MRG_MyISAM、Memory、CSV。

infobright ice版本中不允许对brighthouse引擎进行写入,对于其他引擎没有限制。

这意味着我们可以灵活运用ice版本,一般数据级别的表、需要频繁进行写操作的表使用myisam引擎存储,特别巨大的数据表、以读为主数据表使用brighthouse引擎存储。

mysql> insert into a values ('1');

ERROR 1031 (HY000): Table storage engine for 'a' doesn't have this option

mysql> insert into c values ('1');

Query OK, 1 row affected (0.08 sec)

表a是brighthouse引擎,表c是myisam引擎。

infobright的导入

ice版brighthouse引擎的写入方式只能是load data

infobright ice使用手册的第36页列举了一些import时可能遇到的报错和处理方法,但是比较笼统。

结合个人在实验中遇到的一些问题,简单说明一下:

一、load data时一定要指定分隔符,这与myisam、innodb load data infile 时默认字段(列)分隔符是 \t不同

如果不指定分隔符会抛出以下错误:

mysql> load data local infile '/data/111.txt' into table a;

ERROR 5 (HY000): Unable to detect the line terminating sequence, please specify it explicitly.

mysql> load data local infile '/data/111.txt' into table a fields terminated by '\t';

Query OK, 9 rows affected (0.12 sec)

Records: 9  Deleted: 0  Skipped: 0  Warnings: 0

二、字段中的特殊字符和字符集

1、如果数据库与表的字符集不统一,导入数据时会抛出

infobright :ERROR 2 (HY000) at line 1: Wrong data or column definition. Row: 39075, field: 2

关于mysql字符集和校对规则这里不多赘述,目前我们常用的字符集utf8在infobright中被全面支持,详见infobright ice使用手册的第30页

所以字符集一定统一使用utf8

2、某些特殊fields不会转义,即使你escaped by '\\'

这个问题同样会抛出infobright :ERROR 2 (HY000) at line 1: Wrong data or column definition. Row: 39075, field: 2

我在实际操作中发现 大于小于号正反斜杠 > < \ / 等等都会报错,没有更好的解决方法,只能与研发共同制定规则在使用brighthouse引擎的表中尽量不使用特殊字符

infobright的导出

导出有两种方法:select into和mysqldump,这基本与mysql的使用一致

但是使用mysqldump时需要注意 要加上single-transaction选项,否则会抛出:

mysqldump: Got error: 1031: Table storage engine for 'BRIGHTHOUSE' doesn't have this option when using LOCK TABLES

因为brighthouse引擎使用列存储方式,不支持锁定。

brighthouse的文件系统和压缩方式

以同样一张300多万的表做实验,关于brighthouse引擎的压缩介绍在手册的第26~28页

myisam:

-rw-rw---- 1 mysql mysql 180M Feb 27 13:41 loginlog_201203.MYD

-rw-rw---- 1 mysql mysql 123M Feb 28 03:00 loginlog_201203.MYI

innodb(row_format=compressed):

-rw-rw---- 1 mysql mysql 8.6K Mar  6 10:32 ddd.frm

-rw-rw---- 1 mysql mysql 332M Mar  6 10:38 ddd.ibd

brighthouse:

21M     ./loginlog_201203.bht

myisam数据文件+索引文件为303m

innodb压缩模式下为332m

brighthouse所有文件一共21m

show full columns命令可以看到表每一列的信息,包括大小和压缩比

mysql> show full columns from loginlog_2012031;

99a919a5dce124431cf885f364b81f1a.png

也可以在文件系统下查看表的物理文件,可以看到brighthouse引擎以列为单位进行存储:

[root@dev_cvs loginlog_2012031.bht]# ll -h

total 21M

-rw-rw---- 1 mysql mysql 4.4K Feb 27 13:42 TA00000000000001.ctb

-rw-rw---- 1 mysql mysql  117 Feb 27 13:42 TA00000.ctb

-rw-rw---- 1 mysql mysql 1.9K Feb 27 13:42 TA00000DPN.ctb

-rw-rw---- 1 mysql mysql  12M Feb 27 13:42 TA00001000000001.ctb       //username列的数据块

-rw-rw---- 1 mysql mysql  107 Feb 27 13:42 TA00001.ctb

-rw-rw---- 1 mysql mysql 1.9K Feb 27 13:42 TA00001DPN.ctb                  //username列的数据块节点

-rw-rw---- 1 mysql mysql 666K Feb 27 13:42 TA00002000000001.ctb

-rw-rw---- 1 mysql mysql  124 Feb 27 13:42 TA00002.ctb

-rw-rw---- 1 mysql mysql 1.9K Feb 27 13:42 TA00002DPN.ctb

-rw-rw---- 1 mysql mysql 7.6M Feb 27 13:42 TA00003000000001.ctb

-rw-rw---- 1 mysql mysql  106 Feb 27 13:42 TA00003.ctb

-rw-rw---- 1 mysql mysql 1.9K Feb 27 13:42 TA00003DPN.ctb

-rw-rw---- 1 mysql mysql 3.1K Feb 27 13:42 TA00004000000001.ctb

-rw-rw---- 1 mysql mysql  119 Feb 27 13:42 TA00004.ctb

-rw-rw---- 1 mysql mysql 1.9K Feb 27 13:42 TA00004DPN.ctb

-rw-rw---- 1 mysql mysql   66 Feb 27 13:35 Table.ctb

-rw-rw---- 1 mysql mysql  117 Feb 27 13:35 TB00000.ctb

-rw-rw---- 1 mysql mysql  107 Feb 27 13:35 TB00001.ctb

-rw-rw---- 1 mysql mysql  124 Feb 27 13:35 TB00002.ctb

-rw-rw---- 1 mysql mysql  106 Feb 27 13:35 TB00003.ctb

-rw-rw---- 1 mysql mysql  119 Feb 27 13:35 TB00004.ctb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值