团队于今年(2025.9)打磨出了深度优化的自研数据库内核——DongSQL V1.1.0。
[如果对前因后果比较感兴趣,可以移步上一篇文章《宝剑锋从磨砺出——零售数据库内核,为大促铸剑!》]
本文将深度解析DongSQL在语法扩展、并发控制、查询优化等方面的内核改造,以及在电商场景下的优化实践。

1、DongSQL在语法扩展上的优化
1.1. RETURNING子句功能
▶︎ 语法扩展创新:DongSQL在标准SQL语法基础上扩展了RETURNING子句,这是重要语法创新。RETURNING子句允许DML语句(INSERT、UPDATE、DELETE、REPLACE)在执行数据修改操作的同时返回受影响的行数据,无需额外查询。
传统数据库在执行DML操作后,如果需要获取操作结果,必须执行额外的SELECT查询,这在高并发场景下会产生额外的网络往返开销。DongSQL通过RETURNING子句彻底解决了这一问题。
-- INSERT操作返回自增ID INSERT INTO orders (customer_id, order_date) VALUES (1001, NOW()) RETURNING order_id; -- UPDATE操作返回更新后的数据 UPDATE products SET price = price * 1.1 WHERE category = 'electronics' RETURNING product_id, name, old_price, price; -- DELETE操作返回被删除的记录 DELETE FROM expired_sessions WHERE expire_time < NOW() RETURNING session_id, user_id, expire_time;
▶︎ 性能提升效果:经测试验证,RETURNING子句在不同场景下都能带来显著的性能提升:
•固定行更新场景:16并发时TPS提升61%,响应时间降低44%
•随机行更新场景:128并发时TPS提升18%
•大规模更新测试:2000万次操作中平均TPS提升5-10%

▶︎ 生产落地预期:该功能与DongDAL发号器逻辑高度匹配,有望将发号器性能瓶颈大幅提升(DongDAL团队配套开发推进中)
1.2. Hint语法扩展
▶︎ 多样化Hint支持:DongSQL扩展了Hint语法体系,提供了针对电商场景的专用提示功能,包括并发控制、库存管理等领域特定的优化。
▶︎ Inventory Hint:专门针对电商库存管理场景设计的提示语法,提供目标影响行数控制、自动提交/回滚等特性。
-- 库存扣减:确保只影响一行,成功自动提交,失败自动回滚 UPDATE /*+ TARGET_AFFECT_ROW(1) COMMIT_ON_SUCCESS ROLLBACK_ON_FAIL */ inventory SET stock = stock - 5 WHERE product_id = 1001 AND stock >= 5;
▶︎ 性能提升数据:在16并发的库存扣减场景下,使用Inventory Hint比不使用hint性能提升215%。

2、DongSQL在并发控制上的优化
2.1. CCL并发控制
▶︎ 多维度限流机制:DongSQL实现了CCL(Concurrency Control)并发控制功能,通过多维度的限流策略,有效解决电商秒杀场景下的热点数据访问问题。
传统数据库在面对高并发热点数据访问时,往往会因为激烈的锁竞争导致性能急剧下降,甚至系统雪崩。DongSQL的CCL通过智能排队机制,将无序的并发请求转换为有序处理,从根本上解决了这一问题。
▶︎ 多维度控制策略:
•基于字段的限流:ccl_queue_field(column_name, concurrency),对特定字段值进行并发控制
•基于值的限流:ccl_queue_value(value, concurrency),对特定数据值进行精准限流
•基于SQL指纹的限流:ccl_queue_digest(concurrency),对相同SQL模式进行统一管控
-- 对商品ID为999的热门商品进行限流,并发度限制为5 SELECT /*+ ccl_queue_value(999, 5) */ * FROM products WHERE product_id = 999; -- 对库存扣减操作按商品ID进行限流 UPDATE /*+ ccl_queue_field(product_id, 8) */ inventory SET stock = stock - 1 WHERE product_id = ?; -- 对相同SQL模式进行统一限流 SELECT /*+ ccl_queue_digest(10) */ * FROM hot_products WHERE status = 1;
▶︎ 性能突破数据:
•秒杀场景优化:在4096并发下,使用CCL限流后TPS从573提升至1337,性能提升133%
•系统稳定性:有效防止系统雪崩,将无序并发转换为有序处理
•热点缓解:通过队列机制显著降低热点数据的锁竞争

2.2. Statement Outline执行计划及自定义提示管理
▶︎ 企业级计划稳定性:DongSQL提供了Statement Outline功能,用于固化重要SQL的执行计划,防止因数据变化导致的计划不稳定问题。
▶︎ 自定义Hint注入工具:包括但不限于上述秒杀、CCL限流场景的Hint,即使业务研发预期外的过载或者突发流量发生,应急情况下DBA也可以通过Statement Outline功能对问题SQL进行干预
-- 为重要SQL固化执行计划 CALL dbms_outln.add_index_outline( 'test_db', '', 1, 'USE INDEX', 'idx_status', '', 'SELECT * FROM orders WHERE status = "PAID"' ); -- 为特定查询添加ccl_queue_digest限流hint,限制并发度为2 CALL dbms_outln.add_optimizer_outline( 'test_db', '', 1, '/*+ ccl_queue_digest(2) */', 'SELECT * FROM orders WHERE customer_id = 1001' );
▶︎ 核心价值:
•性能稳定性:保障核心SQL性能不因数据变化而波动
•智能限流:支持基于SQL指纹的手动限流和自动限流(自动限流默认不开启,需要开启的业务需单独申请)
•企业级管理:提供生产级的执行计划管理能力
3、DongSQL在查询优化上的改进
3.1. 单点查询优化
▶︎ 查询路径优化:DongSQL实现了单点查询bypass功能,针对主键等值查询这类高频简单查询,绕过部分SQL层处理逻辑,直接访问存储引擎,大幅提升查询性能。
电商场景中,商品详情查询、用户信息查询等基于主键的简单查询占据了很大比例。虽然这些查询逻辑简单,但在高并发下仍然消耗大量CPU资源。DongSQL的单点查询优化针对这一痛点进行了专项优化。
▶︎ 性能提升数据:
•不同环境性能提升:容器环境提升20%,物理机环境提升30%
•高并发场景:当CPU达到瓶颈时,QPS提升20-28%
•资源效率:相同硬件配置下处理能力显著提升

3.2. 线程池优化
▶︎ 高并发处理能力:DongSQL实现了企业级线程池功能,通过智能线程调度和资源管理,显著提升了系统在高并发场景下的处理能力和稳定性。
传统数据库在面对大量并发连接时,会为每个连接创建独立线程,这在高并发下会导致线程切换开销过大、内存消耗激增等问题。DongSQL的线程池优化通过复用线程资源,有效解决了这些问题。
▶︎ 调度机制:
•线程复用:通过线程池复用减少线程创建销毁开销
•负载均衡:分配任务到不同线程,避免热点线程
•优先级调度:支持任务优先级,保障重要业务优先处理
▶︎ 性能突破数据(基于8C32G测试环境,sysbench 16张表每张1000万行数据):
只读场景性能对比:
•低并发优势:32线程时,线程池模式QPS达到141,261,相比传统模式的110,658提升27.6%
•高并发稳定性:在512线程高并发下,线程池模式QPS保持131,939,而传统模式仅61,580,性能提升114%
•延迟控制:512线程时TP99延迟从传统模式的297.92ms优化到118.92ms,降低60%
纯写场景性能突破:
•中等并发:64线程时QPS从46,577提升到57,655,性能提升23.8%
•高并发场景:512线程时QPS从29,541提升到58,166,性能提升97%
•超高并发:4096线程时QPS从28,571提升到54,687,性能提升91%
读写混合场景优化:
•128线程:QPS从54,870提升到80,244,性能提升46%
•256线程:QPS从48,787提升到77,961,性能提升60%
•延迟优化:256线程时TP99延迟从196.89ms优化到158.63ms,降低19%

3.3. 其他查询执行优化
▶︎ 执行路径优化:DongSQL在查询执行引擎层面进行了多项优化,包括算子优化、内存管理优化、并行执行优化等。
▶︎ 缓存机制增强:优化了Buffer Pool管理策略,页面mutex优化,提升了数据访问效率,降低了I/O锁冲突。
4、性能基准测试汇总
OLTP标准基准测试
基于标准测试环境的性能数据(16C32G, 16张表,每张表100万行):
|
测试场景 |
最佳线程数 |
TPS |
QPS |
TP99延迟 |
平均延迟 |
|
只读查询 |
64 |
19,484 |
311,745 |
21.50ms |
3.28ms |
|
只写操作 |
256 |
17,004 |
102,025 |
29.72ms |
15.05ms |
|
插入操作 |
256 |
25,614 |
25,614 |
15.83ms |
9.99ms |
|
读写混合 |
128 |
9,795 |
195,908 |
33.12ms |
13.06ms |
|
点查询 |
64 |
560,933 |
560,933 |
0.18ms |
0.11ms |
电商场景专项性能汇总
|
优化模块 |
测试场景 |
性能提升幅度 |
关键指标 |
|
RETURNING子句 |
固定行更新 |
61% |
TPS: 925→1,490 |
|
CCL并发控制 |
秒杀场景 |
133% |
TPS: 573→1,337 |
|
Inventory Hint |
库存扣减 |
215% |
TPS: 1,537→4,843 |
|
单点查询优化 |
主键查询 |
28% |
QPS: 76,432→98,470 |
5、未来规划
1.持续语法扩展:基于业务需求继续扩展SQL语法功能
2.智能优化增强:引入机器学习优化执行计划选择
3.内核级技术支持:具备内核研发能力的团队,持续从最底层为业务研发提供深度优化的数据库解决方案
4.云原生存算分离:继续打造属于京东自己的高性能低成本数据库产品
6、结语
从开源内核到自研DongSQL,京东零售数据库团队始终以"业务价值驱动技术创新"为核心理念。DongSQL作为专为京东电商场景设计的数据库,通过语法扩展、并发控制、查询优化等多个模块的深度创新,为电商业务的快速发展提供了强有力的数据库技术支撑。
这些优化不仅提升了系统性能,更重要的是为集团基础技术底座提供了坚实的基础。未来,京东零售数据库团队将持续深耕数据库内核技术,让数据库更好地服务业务发展。