團隊于今年(2025.9)打磨出了深度優(yōu)化的自研數(shù)據(jù)庫內(nèi)核——DongSQL V1.1.0。
[如果對前因后果比較感興趣,可以移步上一篇文章《寶劍鋒從磨礪出——零售數(shù)據(jù)庫內(nèi)核,為大促鑄劍!》]
本文將深度解析DongSQL在語法擴展、并發(fā)控制、查詢優(yōu)化等方面的內(nèi)核改造,以及在電商場景下的優(yōu)化實踐。

1、DongSQL在語法擴展上的優(yōu)化
1.1. RETURNING子句功能
?? 語法擴展創(chuàng)新:DongSQL在標準SQL語法基礎(chǔ)上擴展了RETURNING子句,這是重要語法創(chuàng)新。RETURNING子句允許DML語句(INSERT、UPDATE、DELETE、REPLACE)在執(zhí)行數(shù)據(jù)修改操作的同時返回受影響的行數(shù)據(jù),無需額外查詢。
傳統(tǒng)數(shù)據(jù)庫在執(zhí)行DML操作后,如果需要獲取操作結(jié)果,必須執(zhí)行額外的SELECT查詢,這在高并發(fā)場景下會產(chǎn)生額外的網(wǎng)絡(luò)往返開銷。DongSQL通過RETURNING子句徹底解決了這一問題。
--INSERT操作返回自增ID INSERTINTOorders(customer_id,order_date)VALUES(1001,NOW())RETURNINGorder_id; --UPDATE操作返回更新后的數(shù)據(jù) UPDATEproductsSETprice=price*1.1WHEREcategory='electronics' RETURNINGproduct_id,name,old_price,price; --DELETE操作返回被刪除的記錄 DELETEFROMexpired_sessionsWHEREexpire_time
?? 性能提升效果:經(jīng)測試驗證,RETURNING子句在不同場景下都能帶來顯著的性能提升:
?固定行更新場景:16并發(fā)時TPS提升61%,響應(yīng)時間降低44%
?隨機行更新場景:128并發(fā)時TPS提升18%
?大規(guī)模更新測試:2000萬次操作中平均TPS提升5-10%

?? 生產(chǎn)落地預(yù)期:該功能與DongDAL發(fā)號器邏輯高度匹配,有望將發(fā)號器性能瓶頸大幅提升(DongDAL團隊配套開發(fā)推進中)
1.2. Hint語法擴展
?? 多樣化Hint支持:DongSQL擴展了Hint語法體系,提供了針對電商場景的專用提示功能,包括并發(fā)控制、庫存管理等領(lǐng)域特定的優(yōu)化。
?? Inventory Hint:專門針對電商庫存管理場景設(shè)計的提示語法,提供目標影響行數(shù)控制、自動提交/回滾等特性。
--庫存扣減:確保只影響一行,成功自動提交,失敗自動回滾 UPDATE/*+TARGET_AFFECT_ROW(1)COMMIT_ON_SUCCESSROLLBACK_ON_FAIL*/ inventorySETstock=stock-5 WHEREproduct_id=1001ANDstock>=5;
?? 性能提升數(shù)據(jù):在16并發(fā)的庫存扣減場景下,使用Inventory Hint比不使用hint性能提升215%。

2、DongSQL在并發(fā)控制上的優(yōu)化
2.1. CCL并發(fā)控制
?? 多維度限流機制:DongSQL實現(xiàn)了CCL(Concurrency Control)并發(fā)控制功能,通過多維度的限流策略,有效解決電商秒殺場景下的熱點數(shù)據(jù)訪問問題。
傳統(tǒng)數(shù)據(jù)庫在面對高并發(fā)熱點數(shù)據(jù)訪問時,往往會因為激烈的鎖競爭導(dǎo)致性能急劇下降,甚至系統(tǒng)雪崩。DongSQL的CCL通過智能排隊機制,將無序的并發(fā)請求轉(zhuǎn)換為有序處理,從根本上解決了這一問題。
?? 多維度控制策略:
?基于字段的限流:ccl_queue_field(column_name, concurrency),對特定字段值進行并發(fā)控制
?基于值的限流:ccl_queue_value(value, concurrency),對特定數(shù)據(jù)值進行精準限流
?基于SQL指紋的限流:ccl_queue_digest(concurrency),對相同SQL模式進行統(tǒng)一管控
--對商品ID為999的熱門商品進行限流,并發(fā)度限制為5 SELECT/*+ccl_queue_value(999,5)*/*FROMproductsWHEREproduct_id=999; --對庫存扣減操作按商品ID進行限流 UPDATE/*+ccl_queue_field(product_id,8)*/inventorySETstock=stock-1WHEREproduct_id=?; --對相同SQL模式進行統(tǒng)一限流 SELECT/*+ccl_queue_digest(10)*/*FROMhot_productsWHEREstatus=1;
?? 性能突破數(shù)據(jù):
?秒殺場景優(yōu)化:在4096并發(fā)下,使用CCL限流后TPS從573提升至1337,性能提升133%
?系統(tǒng)穩(wěn)定性:有效防止系統(tǒng)雪崩,將無序并發(fā)轉(zhuǎn)換為有序處理
?熱點緩解:通過隊列機制顯著降低熱點數(shù)據(jù)的鎖競爭

2.2. Statement Outline執(zhí)行計劃及自定義提示管理
?? 企業(yè)級計劃穩(wěn)定性:DongSQL提供了Statement Outline功能,用于固化重要SQL的執(zhí)行計劃,防止因數(shù)據(jù)變化導(dǎo)致的計劃不穩(wěn)定問題。
?? 自定義Hint注入工具:包括但不限于上述秒殺、CCL限流場景的Hint,即使業(yè)務(wù)研發(fā)預(yù)期外的過載或者突發(fā)流量發(fā)生,應(yīng)急情況下DBA也可以通過Statement Outline功能對問題SQL進行干預(yù)
--為重要SQL固化執(zhí)行計劃 CALLdbms_outln.add_index_outline( 'test_db','',1,'USEINDEX','idx_status','', 'SELECT*FROMordersWHEREstatus="PAID"' ); --為特定查詢添加ccl_queue_digest限流hint,限制并發(fā)度為2 CALLdbms_outln.add_optimizer_outline( 'test_db','',1,'/*+ccl_queue_digest(2)*/', 'SELECT*FROMordersWHEREcustomer_id=1001');
?? 核心價值:
?性能穩(wěn)定性:保障核心SQL性能不因數(shù)據(jù)變化而波動
?智能限流:支持基于SQL指紋的手動限流和自動限流(自動限流默認不開啟,需要開啟的業(yè)務(wù)需單獨申請)
?企業(yè)級管理:提供生產(chǎn)級的執(zhí)行計劃管理能力
3、DongSQL在查詢優(yōu)化上的改進
3.1. 單點查詢優(yōu)化
?? 查詢路徑優(yōu)化:DongSQL實現(xiàn)了單點查詢bypass功能,針對主鍵等值查詢這類高頻簡單查詢,繞過部分SQL層處理邏輯,直接訪問存儲引擎,大幅提升查詢性能。
電商場景中,商品詳情查詢、用戶信息查詢等基于主鍵的簡單查詢占據(jù)了很大比例。雖然這些查詢邏輯簡單,但在高并發(fā)下仍然消耗大量CPU資源。DongSQL的單點查詢優(yōu)化針對這一痛點進行了專項優(yōu)化。
?? 性能提升數(shù)據(jù):
?不同環(huán)境性能提升:容器環(huán)境提升20%,物理機環(huán)境提升30%
?高并發(fā)場景:當CPU達到瓶頸時,QPS提升20-28%
?資源效率:相同硬件配置下處理能力顯著提升

3.2. 線程池優(yōu)化
?? 高并發(fā)處理能力:DongSQL實現(xiàn)了企業(yè)級線程池功能,通過智能線程調(diào)度和資源管理,顯著提升了系統(tǒng)在高并發(fā)場景下的處理能力和穩(wěn)定性。
傳統(tǒng)數(shù)據(jù)庫在面對大量并發(fā)連接時,會為每個連接創(chuàng)建獨立線程,這在高并發(fā)下會導(dǎo)致線程切換開銷過大、內(nèi)存消耗激增等問題。DongSQL的線程池優(yōu)化通過復(fù)用線程資源,有效解決了這些問題。
?? 調(diào)度機制:
?線程復(fù)用:通過線程池復(fù)用減少線程創(chuàng)建銷毀開銷
?負載均衡:分配任務(wù)到不同線程,避免熱點線程
?優(yōu)先級調(diào)度:支持任務(wù)優(yōu)先級,保障重要業(yè)務(wù)優(yōu)先處理
?? 性能突破數(shù)據(jù)(基于8C32G測試環(huán)境,sysbench 16張表每張1000萬行數(shù)據(jù)):
只讀場景性能對比:
?低并發(fā)優(yōu)勢:32線程時,線程池模式QPS達到141,261,相比傳統(tǒng)模式的110,658提升27.6%
?高并發(fā)穩(wěn)定性:在512線程高并發(fā)下,線程池模式QPS保持131,939,而傳統(tǒng)模式僅61,580,性能提升114%
?延遲控制:512線程時TP99延遲從傳統(tǒng)模式的297.92ms優(yōu)化到118.92ms,降低60%
純寫場景性能突破:
?中等并發(fā):64線程時QPS從46,577提升到57,655,性能提升23.8%
?高并發(fā)場景:512線程時QPS從29,541提升到58,166,性能提升97%
?超高并發(fā):4096線程時QPS從28,571提升到54,687,性能提升91%
讀寫混合場景優(yōu)化:
?128線程:QPS從54,870提升到80,244,性能提升46%
?256線程:QPS從48,787提升到77,961,性能提升60%
?延遲優(yōu)化:256線程時TP99延遲從196.89ms優(yōu)化到158.63ms,降低19%

3.3. 其他查詢執(zhí)行優(yōu)化
?? 執(zhí)行路徑優(yōu)化:DongSQL在查詢執(zhí)行引擎層面進行了多項優(yōu)化,包括算子優(yōu)化、內(nèi)存管理優(yōu)化、并行執(zhí)行優(yōu)化等。
?? 緩存機制增強:優(yōu)化了Buffer Pool管理策略,頁面mutex優(yōu)化,提升了數(shù)據(jù)訪問效率,降低了I/O鎖沖突。
4、性能基準測試匯總
OLTP標準基準測試
基于標準測試環(huán)境的性能數(shù)據(jù)(16C32G, 16張表,每張表100萬行):
| 測試場景 | 最佳線程數(shù) | 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 |
電商場景專項性能匯總
| 優(yōu)化模塊 | 測試場景 | 性能提升幅度 | 關(guān)鍵指標 |
| RETURNING子句 | 固定行更新 | 61% | TPS: 925→1,490 |
| CCL并發(fā)控制 | 秒殺場景 | 133% | TPS: 573→1,337 |
| Inventory Hint | 庫存扣減 | 215% | TPS: 1,537→4,843 |
| 單點查詢優(yōu)化 | 主鍵查詢 | 28% | QPS: 76,432→98,470 |
5、未來規(guī)劃
1.持續(xù)語法擴展:基于業(yè)務(wù)需求繼續(xù)擴展SQL語法功能
2.智能優(yōu)化增強:引入機器學(xué)習優(yōu)化執(zhí)行計劃選擇
3.內(nèi)核級技術(shù)支持:具備內(nèi)核研發(fā)能力的團隊,持續(xù)從最底層為業(yè)務(wù)研發(fā)提供深度優(yōu)化的數(shù)據(jù)庫解決方案
4.云原生存算分離:繼續(xù)打造屬于京東自己的高性能低成本數(shù)據(jù)庫產(chǎn)品
6、結(jié)語
從開源內(nèi)核到自研DongSQL,京東零售數(shù)據(jù)庫團隊始終以"業(yè)務(wù)價值驅(qū)動技術(shù)創(chuàng)新"為核心理念。DongSQL作為專為京東電商場景設(shè)計的數(shù)據(jù)庫,通過語法擴展、并發(fā)控制、查詢優(yōu)化等多個模塊的深度創(chuàng)新,為電商業(yè)務(wù)的快速發(fā)展提供了強有力的數(shù)據(jù)庫技術(shù)支撐。
這些優(yōu)化不僅提升了系統(tǒng)性能,更重要的是為集團基礎(chǔ)技術(shù)底座提供了堅實的基礎(chǔ)。未來,京東零售數(shù)據(jù)庫團隊將持續(xù)深耕數(shù)據(jù)庫內(nèi)核技術(shù),讓數(shù)據(jù)庫更好地服務(wù)業(yè)務(wù)發(fā)展。
-
內(nèi)核
+關(guān)注
關(guān)注
4文章
1470瀏覽量
42989 -
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
4055瀏覽量
68431 -
京東
+關(guān)注
關(guān)注
2文章
1123瀏覽量
50123
發(fā)布評論請先 登錄
國產(chǎn)DSP,自研指令集內(nèi)核C2000,F(xiàn)28335、F280049、F28377
電商數(shù)據(jù)分析怎么做,瀏覽者才能自主分析?
STM32固件庫內(nèi)部結(jié)構(gòu)功能簡介
每年第1天自動刪除前1年數(shù)據(jù)庫內(nèi)容問題
電商數(shù)據(jù)分析攻略,讓你輕松搞定數(shù)據(jù)分析!
螞蟻集團自研數(shù)據(jù)庫產(chǎn)品OceanBase獨立
支付寶宣布自研數(shù)據(jù)庫OceanBase正式向全球開放 可獲“支付寶同款”數(shù)據(jù)庫處理能力
螞蟻集團自研數(shù)據(jù)庫OceanBase已宣布正式開源
如何快速實現(xiàn)電商數(shù)據(jù)可視化分析
雙向賦能:AI與數(shù)據(jù)庫的修行之道
甲骨文推出HeatWave GenAI,集成數(shù)據(jù)庫內(nèi)大模型
國聯(lián)易安數(shù)據(jù)庫內(nèi)容保密檢查系統(tǒng)再獲涉密檢測證書
國聯(lián)易安:數(shù)據(jù)庫內(nèi)容保密檢查系統(tǒng)“護航”數(shù)據(jù)安全
京東商品評論API助力電商數(shù)據(jù)分析
解鎖淘寶京東拼多多API,讓電商數(shù)據(jù)為你所用
京東自研電商數(shù)據(jù)庫內(nèi)核DongSQL簡介
評論