[發明專利]動態分表的方法、裝置、電子設備和計算機可存儲介質有效
| 申請號: | 201710451373.4 | 申請日: | 2017-06-15 |
| 公開(公告)號: | CN109144991B | 公開(公告)日: | 2021-09-14 |
| 發明(設計)人: | 周劍橋 | 申請(專利權)人: | 北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22 |
| 代理公司: | 中原信達知識產權代理有限責任公司 11219 | 代理人: | 張一軍;姜勁 |
| 地址: | 100195 北京市海淀區杏石口路6*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 動態 方法 裝置 電子設備 計算機 存儲 介質 | ||
本發明公開了動態分表的方法、裝置、電子設備和計算機可存儲介質,涉及計算機技術領域。該方法的一具體實施方式包括:當要插入一個新的行時,為新的行生成具有唯一性的行標識,讀取當前分表數量和當前分表算法作為新的行對應的分表數量和分表算法,把包括該行的行標識、該行對應的分表數量和分表算法的標識的記錄行保存到分表信息表中,根據行標識、對應的分表數量和分表算法確定分表標識,把新的行插入到標識為所確定分表標識的分表中。該實施方式克服了單個分表的數據量過大、無法動態分表的問題,降低單個分表的數據量,提高對分表的訪問效率;能進行動態分表,不必重啟應用服務;能靈活配置分表策略。
技術領域
本發明涉及計算機技術領域,尤其涉及一種動態分表的方法、裝置、電子設備和計算機可存儲介質。
背景技術
隨著互聯網應用的廣泛普及,數據呈爆發式增長,海量數據的存儲和訪問成為系統設計的瓶頸問題。
目前數據庫往往主表只有一張表,如果數據量過大,會造成主表讀取或更新非常緩慢。為此,現有技術可以通過數據結轉或者采用分庫分表結構的數據庫的方式解決上述問題。
發明人發現現有技術中至少存在如下問題:
1、需要結轉的數據不好控制,有些訂單數據需要保留在當前訂單主表中一段時間,以備查詢或者其他用途;即使進行數據結轉,遇到促銷高峰期,當天的訂單數據單量較大,仍然會造成訂單主表的讀取或更新非常緩慢;
2、基于分庫分表結構的數據庫雖然可以基本實現分庫分表邏輯,但是不能實現連續多次的修改分表數量,同時無法做到不重啟應用服務即可生效。它只能提前預估數據量進行分表,遇到促銷高峰時,往往來不及進行響應,大批量數據可能會把當前分表空間給打滿,起不到應有的分表作用。
發明內容
有鑒于此,本發明實施例提供一種動態分表的方法、裝置、電子設備和計算機可存儲介質,能夠降低每個分表的數據量,提高對分表的訪問效率;并且即使修改分表算法和分表數量,也不必重啟應用服務,實現動態生效。
為實現上述目的,根據本發明實施例的一個方面,提供了一種動態分表的方法,包括預先建立與給定數據庫表具有相同結構的分表,各分表具有唯一性標識,其中,當要插入一個新的行時,執行如下步驟:
為新的行生成具有唯一性的行標識,
讀取當前分表數量和當前分表算法作為新的行對應的分表數量和分表算法,
把包括該行的行標識、該行對應的分表數量和分表算法的標識的記錄行保存到分表信息表中,
根據行標識、對應的分表數量和分表算法確定分表標識,以及
把新的行插入到標識為所確定分表標識的分表中。
可選地,當根據行標識查找/修改已有的一個行時,執行如下步驟:
根據該行的行標識和分表信息表獲取插入該行時的分表數量和分表算法作為該行對應的分表數量和分表算法,
根據該行的行標識、該行對應的分表數量和分表算法確定一個分表標識,并且
在標識為所確定分表標識的分表中根據該行的行標識查找/修改該行。
可選地,從緩存中讀取當前分表數量和當前分表算法。
可選地,分表算法和/或分表數量可動態修改。
可選地,分表數量通過監控模塊根據其監控的系統負載狀態和預定的規則進行修改。
可選地,每當改變數據庫中的所述分表數量和/或所述分表算法時,將修改后的分表算法和分表數量同步至緩存中。
可選地,分表標識為分表的序號。
可選地,確定分表標識的步驟包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司,未經北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710451373.4/2.html,轉載請聲明來源鉆瓜專利網。





