高并发账户记录查询
【摘要】 面对高并发账户记录查询问题,按照本文的介绍一步一步操作,就能有效提升性能。点击了解 高并发账户记录查询 问题描述 高并发账户记录查询在银行、互联网企业、通信企业中广泛存在。例如:网上银行、手机银行、电商个人账户查询、互联网游戏账户等等。这类查询有三个共同点: 1、 数据总量非常大。用户数量本身就非常多,再加上多年的账户数据,数据量可以达到几千万甚至上亿条。 2、 访问人数众多。几百万甚至上千万人访问,属于高并发查询。 3、 不能让用户等待。手机、网页要达到秒级响应,否则严重影响用户体验。 下面以某银行账户活期明细查询为例,给出这类问题的解决办法。 某银行共一亿个活期账户,每个账户平均每月有 7 条数据,每年数据总量 84 亿条。每条数据中的机构字段,还要关联分支机构表(几千条)记录。在性能上,要求单台服务器支持一千个以上的查询,响应时间不能超过 1 秒。 有序行存 活期明细数据随着时间增长非常快,一年就有 84 亿条。如果放到内存中,需要大量内存空间,硬件投入成本太高,所以要放到硬盘上存储。分支机构表只有几千条数据,可以放在内存中存储。 在硬盘上存储,要考虑是行存还是列存。列存数据分块压缩,能减少遍历数据量。但由于账户查询是随机的,整块读取会有额外解压计算。而且每次取数都针对整个分块,复杂度较高,性能不如行存。因此,这个场景要选择行存存储,如下图: 图 1:行存和列存