Phoenix调优

phoenix.query.timeoutMs: 在客户机上查询超时间的毫秒数。默认为10分钟     600000

phoenix.query.keepAliveMs:当线程的数量大于客户端线程池可执行的数量时,超时时间的毫秒数,默认为60秒    60000

phoenix.query.threadPoolSize:线程池中的线程数,随着集群中的机器/CPU数量的增长,这个值应该增加       128

phoenix.query.queueSize:限制队列最大数,线程不够往队列里面装,队列装满了就拒绝请求,默认大小是5000,如果是0就同步

phoenix.query.spoolThresholdBytes:任务并行执行完毕后返回值写到磁盘的阀值,单位为字节,默认值是20 mb  20971520

phoenix.query.maxSpoolToDiskBytes:任务执行失败写入磁盘的阀值,默认是1G     1024000000

phoenix.query.maxGlobalMemorySize:Phoenix查询内存的最大值,默认不设置

phoenix.query.maxGlobalMemoryWaitMs:无剩余内存时,等待剩余内存使用的时间,超时就抛出,默认是10秒

phoenix.mutate.maxSize:当客户端提交请求后每次处理数据的最大值,默认为50W

phoenix.query.useIndexes:检查索引是否用优化器来查询,默认为true

phoenix.groupby.maxCacheSize:Group by查询的数据缓存大小,默认为100MB

phoenix.groupby.spillFiles:使用group by查询的时候,当数据超出100MB的时候写入本地磁盘文件的个数    2

phoenix.coprocessor.maxNetaDataCacheSize:元数据最大的缓存值,默认是20MB


在创建表的时候进行预分区

在建phoenix表时,可以精确的指定要根据什么值来做预分区,这样能极大的提高phoenix批量加载数据的速度


实例:

CREATE TABLE TEST(

    HOST VARCHAR NOT NULL PRIMARY KEY,

    DESCRIPTION VARCHAR

)SPLIT ON('CS','EU','NA')

创建表使用多个列族

每个列族存储在单独的文件中,里面包含相关数据。如果查询使用选定的列值存在与一个列族中,将极大的提高读取数据性能。

实例(创建A、B俩个列族):

CREATE TABLE TEST(

    MYKEY VARCHAR NOT NULL PRIMARY KEY,

    A.COL1 VARCHAR,

    A.COL12 VARCHAR,

    B.COL3 VARCHAR

)


创建表使用压缩,

    当数据量大的时候使用压缩,比如GZip、Snappy、LZO等等能极大的提高数据的读写效率

实例:

CREATE TABLE TEST(

    HOST VARCHAR NOT NULL PRIMARY KEY,

    DESCRIPTION VARCHAR

)COMPRESSION='GZ'

二级索引

1. 创建表的全局索引

    create table test(

        mykey varchar primary key,

        col1 varchar,

        col2 varchar

)


2. 为col2创建索引: create index idx on test(col2)

3.为col1、col2创建索引:

    create index idx on test(col1) include(col2)

4. 可以通过explain select。。。来看phoniex在执行sql时是否用上了二级索引

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值