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
1 2 | # 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中,执行
1 | # ./postconfig.sh |
4.启动,关闭infobright
1 | # /data/infobright/infobright/bin/mysqld_safe start/stop |
5.查看进程
1 | # ps -ef |grep mysql |
infobright端口为5029
6.进入infobright
1 | #/data/infobright/infobright/bin/mysql -u root -p |
7.应用
1 2 3 4 5 | 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
1 2 3 4 5 6 7 8 9 10 | 基本语法: 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
1 | load data infile '/info.txt' ignore into table t0 character set gbk fields terminated by ',' enclosed by '"' lines terminated by '\n' ; |
info.txt
1 2 | 1 , "name1" , 2 2 , "name2" , 3 |
参考:http://hunan.iteye.com/blog/752606
http://blog.csdn.net/liyanyun/article/details/8858093
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)