brighthouse.ini配置文件 ------------------------------------------------ ServerMainHeapSize IB主要使用的内存大小,通常取系统自动生成值即可,但遇到特殊的应用场景,可进行调整,避免出现swap交换 LoaderMainHeapSize 当遇到列数很多的表据时(1000列),适当调大; 长文本字段,适当调大; CacheFolder 临时文件的路径,可以和data目录放在不同的IO上,适当分担压力 AllowMySQLQueryPath 设置为0禁止,infobright无法优化的查询也不会使用Mysql进行优化。 KNFolder 知识网格的存储地址,默认是在数据文件同目录下,约占数据文件容量的1% ControlMessages IB自身bh.err日志记录的详细度 IB支持与配置信息 ------------------------------------------------ 查询版本 /usr/local/infobright/bin/mysqld --version show variables like '%version%'; 查询默认存储引擎 show engines; 支持的数据类型和范围    支持的DDL操作 alter table rename,add column,drop column, 列定义 Comment选项 ---------------------------- for lookup 对于长varchar和char字段,增加lookup定义后,ib会自动将文本内容映射到一固定数字,查询时提高性能并减少解压操作。但该列必须满足一下条件: 1.文本没有大小写区分; 2.有大量的重复数据,生成的数字映射会全部加载到内存中,所以要考量非重复数据数量select count(distince column) from table;并且该列的压缩比要大于10,show full column from table;查看comment中的压缩比 语法 create table (name varchar(32) comment 'lookup' )engine=brighthouse; ------------------------------------------------- for insert Infobright提供了对列的附加调整,可以帮助优化insert操作的性能。被定义为for insert的列会将数据块保持未压缩状态,来实现更快的数据插入,提高autocommit开启情况下,1.大量的单条insert,2.小频率load(小于10000行)的性能。 如果你需要进行上述的两种操作,最好将for_insert定义在字符列和大数字列上;小叔子列的压缩和解压过程很快,所以对其并不会提高明显的性能。而对以已经定义为lookup的列,for insert能提高的性能也很少。 另外,如果你的磁盘空间很有限,请不要使用这个定义,来最大化的减少磁盘空间的消耗。 create table (name varchar(32) comment 'for_insert' )engine=brighthouse; ----------------------------------------------------- 不支持的列选项 1.默认值 2.主键外键 3.unsigned 不支持的索引 key index unique aoto_increment 查看表格信息 SHOW [FULL] COLUMNS FROM tbl_name [FROM db_name] [LIKE ‘pattern’]; SHOW CREATE TABLE tbl_name; SHOW TABLE STATUS [FROM db_name] [LIKE ‘pattern’]; 查看压缩比统计 压缩比统计compression ratio是ib特殊提供的信息,它根据未压缩前数据(表或列)的自然大小来进行比较。 压缩比是在数据插入时生成的,如果进行了DML操作,并不会更新。 压缩比计算出的数据大小通常比实际磁盘占用要小,因为还需要保存知识网格等数据。 说明:1.标记为not null的列会多消耗1bit,对与null的每个值 2.date列的自然大小计算,是按照实际保存的varchar字段进行的。 数据类型的自然大小大约的等于二进制导入导出的格式。 A查看表格的压缩比 show table status from test like 'large'\G B查看列的压缩比 show full columns for large.....\G ----------------------------------- 字符集支持 Ib提供所有的ansi和utf8支持。 使用utf8字符集的性能会比asc2满。因为知识网格暂时不支持utf8,会在将来的版本中完善。 --------------------------------- 导入导出数据 三种方式: 1.Insert 2.mysql loader 3.ib loader Ibloader 速度更快,更少的健壮性,严格的文件格式要求(文本或二进制),更少的错误容忍性 MySqlloader 速度较慢,更好的健壮性,宽松的导入文件支持(包含变长数据) Insert 支持几乎所有的ETL工具 速度很快,并取决于处理和commit频率 如果使用ETL工具,最好是采用ib loader和二进制格式。 |