由于程序处理的数据量比较大,最高TPS有1000
在处理报文的过程中要过数据库,现在一条报文过数据库的时间是10ms,已经处理不过来,上游会积Q,丢失报文,
分析了下,数据库是瓶颈,占了一半的时间,现在根据业务对数据库进行水平分区和垂直分区,看看性能能提高多少:
后续不上表结构,实现过程和测试结果。
建表sql如下:
-- Table: iv_push_partioned
-- DROP TABLE iv_push_partioned;
CREATE TABLE iv_push_partioned
(
updt timestamp without time zone,
iv_raw bytea,
intime timestamp without time zone,
airline character varying NOT NULL,
suffix character varying NOT NULL,
fltnum numeric NOT NULL,
ivkey numeric,
flightdate character varying NOT NULL,
CONSTRAINT iv_push_partioned_pkey PRIMARY KEY (airline, fltnum, suffix, flightdate)
)
WITH (
OIDS=FALSE
);
ALTER TABLE iv_push_partioned
OWNER TO dipdb;
分表语句
-- Table: iv_push_ca
-- DROP TABLE iv_push_ca;
CREATE TABLE iv_push_ca
(
-- Inhe