机票业务(单实例 2700万行/s return)数据库架构设计 - 阿里云RDS PostgreSQL最佳实践
背景
机票业务的某个模块,数据量10亿+,写、更新、删除量较低。根据KEY查询一些数据,每次查询返回1万条左右的记录。
就是这样简单的需求,业务方发现读成为了巨大的瓶颈,每次返回1万条,100个并发请求,每秒就是100万条(500MB左右),主要的瓶颈:
1、网络是个较大的开销。
2、不同KEY的数据可能是分散存放的,存在查询时的IO放大,可能有一定的性能影响。
3、每次请求的返回记录数较多,数据库search buffer调用可能开销会上升。
就这几个问题,我们来看看如何优化或解决业务方的问题。
建模
1、建表
create table test(
id int,
info text, -- 一些属性,我这里用一个字段代表它
typeid int, -- 类别,也是用户的查询过滤条件,约10万