mysql的存储引擎和infobright引擎说明

目前,mysql自带很多引擎,innodb是我们常用的事务引擎,但还有其他很多引擎,先说明如下:

1. mysql自带引擎:MyISAM,Falcon,Merge,Memory,Federated,Archive,CSV,Blackhole,Cluster,EXAMPLE,Maria.

2. 其他商业引擎:InnoDB,BerkeleyDB,solidDB,NitroDB,Infobright,TukoDB

3. 社区贡献的引擎:PBXT,Revision Engine.

 

Infobright是基于专利技术的列式数据库,一个基于MySQL开发的开源数据仓库(Data Warehouse)软件,可作为MySQL的一个存储引擎来使用,SELECT查询与普通MySQL无区别。 
一、几大优点: 
1、高压缩比率,平均压缩比可达10:1。(经测试,我们的1500万条697M日志数据压缩比例为6:1,压缩后数据大小仅为114M) 
2、列存储,即使数据量十分巨大,查询速度也很快。(经测试,一条在infobright中的复合查询要30秒,在mysql中要一分多) 
3、不需要建索引,就避免了维护索引及索引随着数据膨胀的问题。把每列数据分块压缩存放,每块有知识网格节点记录块内的统计信息,代替索引,加速搜索。 
4、单一台服务器可以高效地读写30T数据。具有可扩展性,这里是指对于同样的查询,当数据量是10T时,它耗费的时间不应该比1T数据量时慢太多,基本是一个数量级内。 

注:实际上infobright取一条记录比mysql要慢很多,但它取100W条记录会比mysql快。所以比较适用于日志、或汇总的大量的数据。 

二、infobright限制 
1、不支持数据更新:社区版Infobright只能使用“LOAD DATA INFILE”的方式导入数据,不支持INSERT、UPDATE、DELETE 
2、不支持高并发:只能支持10-18多个并发查询 

rpm包方式安装infobright 
1.安装rpm
下载地址:http://www.infobright.org/

2.安装inforbright

# rpm -ivh  infobright-4.0.7-0-x86_64-ice.rpm  --prefix=/data/infobright
#(此处我们可只写一级目录,如/data,会默认建立infobright-version-x86_64目录)

提示安装完成,执行./postconfig.sh

3、 提示到/data/infobright/infobright中,执行

# ./postconfig.sh

4.启动,关闭infobright

# /data/infobright/infobright/bin/mysqld_safe start/stop

5.查看进程

# ps -ef |grep mysql

infobright端口为5029

6.进入infobright

#/data/infobright/infobright/bin/mysql -u root -p

7.应用

CREATE TABLE `t0` (
  `id` bigint(20) NOT NULL ,
  `name` varchar(20) NOT NULL,
  `age` int(3) NOT NULL
) ENGINE=BRIGHTHOUSE DEFAULT CHARSET=utf8;

 

注:使用的引擎是 BRIGHTHOUSE    主键,为空,自动递增...此引擎都不支持。 
8.导入日志   使用 load data infile  

基本语法:
load data  [low_priority] [local] infile 'file_name txt' [replace | ignore]
into table tbl_name
[fields
[terminated by't']
[OPTIONALLY] enclosed by '']
[escaped by'\' ]]
[lines terminated by'n']
[ignore number lines]
[(col_name,   )]

low_priority:那么MySQL将会等到没有其他人读这个表的时候,才把插入数据
replace和ignore:控制对现有的唯一键记录的重复的处理。如果你指定replace,新行将代替有相同的唯一键值的现有行。如果你指定ignore,跳过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项,当找到重复键时,出现一个错误,并且文本文件的余下部分被忽略。
fields:关键字指定了文件字段的分割格式,
    terminated by:是以什么字符作为分隔符
    enclosed by:字段括起字符
lines:指定了每条记录的分隔符默认为'\n'即为换行符

一条比较完整的 load  data  infile

load data infile '/info.txt' ignore into table t0 character set gbk fields terminated by ',' enclosed by '"' lines terminated by '\n';

info.txt

1,"name1",2
2,"name2",3

 

参考:http://hunan.iteye.com/blog/752606
http://blog.csdn.net/liyanyun/article/details/8858093

posted @ 2021-01-05 09:39  _Meditation  阅读(363)  评论(0编辑  收藏  举报