外卖平台每日都有1000w订单查询如何优化查询?

31 阅读1分钟

今天,周日也不想学习啦。就来码码字吧!!!!!

需求分析

在外卖平台中,每天1000w数据查询,平均QPS大约150次,高峰期时可能达到至少10倍左右,因此接口需要满足至少2000qps。

接口特点:

  • 读多写少,90%的操作都是查询操作
  • 数据要求一致性高:订单状态必须准确,要求强一致性
  • 接口响应速度快

最终目标:

  • 高并发:高峰期不挂
  • 高性能:P99<100ms

优化方案

  1. 采用读写分离的方式将减轻数据库压力
  2. 因为查询的数据主要是暂时未完成订单的数据,可以将数据进行冷热分离
  3. 使用缓存, 提高查询效率,减轻数据库压力
  4. 异步和定时处理已经完成的订单进行归档处理

上述方案思考未必周全。希望友友们可以积极的讨论或者说说你在工作遇到过的挑战(例如场景是否存在)。