随着京东供应链业务数十年的发展,作为第一环节的采购系统(BIP)俨然在业务复杂度、订单数据量上达到了前所未有的规模,随之而来的数据库查询性能问题屡见不鲜。本文主要介绍了研发团队在面对海量订单场景下,为了提升用户体验、降低系统技术风险,所做的真实优化案例。
•系统概要:BIP采购系统用于京东采销部门向供应商采购商品,并且提供了多种创建采购单的方式以及采购单审批、回告、下传回传等业务功能。
•系统价值:向供应商采购商品增加库存,满足库存周转及客户订单的销售,供应链最重要的第一环节。
•JED:京东自研的基于MySQL存储的分布式数据库解决方案
•JimKV/JimDB:京东自研的新一代分布式KV存储系统
01
背景
采购系统在经历了多年的迭代后,在数据库查询层面面临巨大的性能挑战。核心根因主要有以下几方面:
-
复杂查询多,历史上通过MySQL和JED承载了过多的检索过滤条件,时至今日很难推动接口使用方改变调用方式
-
数据量大,随着业务的持续发展,带来了海量的数据增长
-
数据模型复杂,订单完整数据分布在20+张表,经常需要多表join
引入的主要问题有:
-
业务层面: