本文件涉及計(jì)算機(jī),尤其涉及一種數(shù)據(jù)處理方法和裝置。
背景技術(shù):
1、為避免對(duì)數(shù)據(jù)表進(jìn)行大面積刪除帶來的全局風(fēng)險(xiǎn),通常不允許對(duì)關(guān)鍵的數(shù)據(jù)表進(jìn)行物理刪除,而是以邏輯刪除替代,即在數(shù)據(jù)表中增加is_delete字段來標(biāo)識(shí)某條記錄是否被刪除。邏輯刪除雖然能夠避免物理刪除帶來的風(fēng)險(xiǎn),但同時(shí)也會(huì)給數(shù)據(jù)處理帶來諸多不便,比如在進(jìn)行數(shù)據(jù)處理和統(tǒng)計(jì)時(shí),需要排除邏輯刪除的記錄,以及在邏輯刪除頻繁的業(yè)務(wù)場(chǎng)景下,數(shù)據(jù)表中會(huì)遺留大量已經(jīng)被邏輯刪除的數(shù)據(jù),導(dǎo)致數(shù)據(jù)量只增不減,從而導(dǎo)致查詢性能問題等等。
2、因此,如何提供一種更為優(yōu)化的數(shù)據(jù)處理方案仍然亟待解決。
技術(shù)實(shí)現(xiàn)思路
1、本說明書實(shí)施例目的是提供一種數(shù)據(jù)處理方法和裝置,以在不進(jìn)行物理刪除且避免邏輯刪除所帶來不便的情況下,實(shí)現(xiàn)對(duì)數(shù)據(jù)表中數(shù)據(jù)的刪除處理。
2、為了實(shí)現(xiàn)上述目的,本說明書實(shí)施例采用下述技術(shù)方案:
3、第一方面,提供一種數(shù)據(jù)處理方法,包括:
4、執(zhí)行數(shù)據(jù)刪除語句,將所述數(shù)據(jù)刪除語句指向的數(shù)據(jù)記錄的狀態(tài)標(biāo)記為已刪除狀態(tài);
5、針對(duì)接收到的數(shù)據(jù)插入語句,確定一條可用于插入數(shù)據(jù)的目標(biāo)數(shù)據(jù)記錄,所述目標(biāo)數(shù)據(jù)記錄的狀態(tài)為已刪除狀態(tài);
6、將所述數(shù)據(jù)插入語句改寫為針對(duì)所述目標(biāo)數(shù)據(jù)記錄的第一數(shù)據(jù)更新語句;
7、執(zhí)行所述第一數(shù)據(jù)更新語句,將所述目標(biāo)數(shù)據(jù)記錄中的目標(biāo)字段的值更新為所述數(shù)據(jù)插入語句所指示的待插入的值,以及將所述目標(biāo)數(shù)據(jù)記錄的狀態(tài)標(biāo)記為未刪除狀態(tài)。
8、第二方面,提供一種數(shù)據(jù)處理裝置,包括:
9、第一執(zhí)行單元,用于執(zhí)行數(shù)據(jù)刪除語句,將所述數(shù)據(jù)刪除語句指向的數(shù)據(jù)記錄的狀態(tài)標(biāo)記為已刪除狀態(tài);
10、確定單元,用于針對(duì)接收到的數(shù)據(jù)插入語句,確定一條可用于插入數(shù)據(jù)的目標(biāo)數(shù)據(jù)記錄,所述目標(biāo)數(shù)據(jù)記錄的狀態(tài)為已刪除狀態(tài);
11、改寫單元,用于將所述數(shù)據(jù)插入語句改寫為針對(duì)所述目標(biāo)數(shù)據(jù)記錄的第一數(shù)據(jù)更新語句;
12、第二執(zhí)行單元,用于執(zhí)行所述第一數(shù)據(jù)更新語句,將所述目標(biāo)數(shù)據(jù)記錄中的目標(biāo)字段的值更新為所述數(shù)據(jù)插入語句所指示的待插入的值,以及將所述目標(biāo)數(shù)據(jù)記錄的狀態(tài)標(biāo)記為未刪除狀態(tài)。
13、第三方面,提供一種電子設(shè)備,包括:
14、處理器;以及
15、被安排成存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的存儲(chǔ)器,所述可執(zhí)行指令在被執(zhí)行時(shí)使所述處理器執(zhí)行以下操作:
16、執(zhí)行數(shù)據(jù)刪除語句,將所述數(shù)據(jù)刪除語句指向的數(shù)據(jù)記錄的狀態(tài)標(biāo)記為已刪除狀態(tài);
17、針對(duì)接收到的數(shù)據(jù)插入語句,確定一條可用于插入數(shù)據(jù)的目標(biāo)數(shù)據(jù)記錄,所述目標(biāo)數(shù)據(jù)記錄的狀態(tài)為已刪除狀態(tài);
18、將所述數(shù)據(jù)插入語句改寫為針對(duì)所述目標(biāo)數(shù)據(jù)記錄的第一數(shù)據(jù)更新語句;
19、執(zhí)行所述第一數(shù)據(jù)更新語句,將所述目標(biāo)數(shù)據(jù)記錄中的目標(biāo)字段的值更新為所述數(shù)據(jù)插入語句所指示的待插入的值,以及將所述目標(biāo)數(shù)據(jù)記錄的狀態(tài)標(biāo)記為未刪除狀態(tài)。
20、第四方面,提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)一個(gè)或多個(gè)程序,所述一個(gè)或多個(gè)程序當(dāng)被包括多個(gè)應(yīng)用程序的電子設(shè)備執(zhí)行時(shí),使得所述電子設(shè)備執(zhí)行以下操作:
21、執(zhí)行數(shù)據(jù)刪除語句,將所述數(shù)據(jù)刪除語句指向的數(shù)據(jù)記錄的狀態(tài)標(biāo)記為已刪除狀態(tài);
22、針對(duì)接收到的數(shù)據(jù)插入語句,確定一條可用于插入數(shù)據(jù)的目標(biāo)數(shù)據(jù)記錄,所述目標(biāo)數(shù)據(jù)記錄的狀態(tài)為已刪除狀態(tài);
23、將所述數(shù)據(jù)插入語句改寫為針對(duì)所述目標(biāo)數(shù)據(jù)記錄的第一數(shù)據(jù)更新語句;
24、執(zhí)行所述第一數(shù)據(jù)更新語句,將所述目標(biāo)數(shù)據(jù)記錄中的目標(biāo)字段的值更新為所述數(shù)據(jù)插入語句所指示的待插入的值,以及將所述目標(biāo)數(shù)據(jù)記錄的狀態(tài)標(biāo)記為未刪除狀態(tài)。
25、本說明書實(shí)施例的方案,通過執(zhí)行數(shù)據(jù)刪除語句將所執(zhí)行的數(shù)據(jù)記錄的狀態(tài)標(biāo)記為已刪除狀態(tài),完成對(duì)數(shù)據(jù)記錄的邏輯刪除;在此基礎(chǔ)上,針對(duì)接收到的數(shù)據(jù)插入語句,從狀態(tài)為已刪除狀態(tài)的數(shù)據(jù)記錄中確定出一條用于插入數(shù)據(jù)的目標(biāo)數(shù)據(jù)記錄,將數(shù)據(jù)插入語句改寫為針對(duì)目標(biāo)數(shù)據(jù)記錄的第一數(shù)據(jù)更新語句,通過執(zhí)行第一數(shù)據(jù)更新語句,即可將目標(biāo)數(shù)據(jù)記錄中的目標(biāo)字段的值更新為數(shù)據(jù)插入語句所指示的待插入的值,以及將目標(biāo)數(shù)據(jù)記錄的狀態(tài)標(biāo)記為未刪除狀態(tài),這樣,相當(dāng)于用待插入的數(shù)據(jù)記錄替換掉被邏輯刪除的數(shù)據(jù)記錄,進(jìn)而在不進(jìn)行物理刪除的背景下,起到了物理刪除同樣的效果,既能夠有效避免物理刪除帶來的風(fēng)險(xiǎn),又能夠避免邏輯刪除帶來的數(shù)據(jù)只增不減而影響查詢性能的問題。
1.一種數(shù)據(jù)處理方法,其特征在于,包括:
2.如權(quán)利要求1所述的方法,其特征在于,在執(zhí)行數(shù)據(jù)刪除語句,將所述數(shù)據(jù)刪除語句指向的數(shù)據(jù)記錄的狀態(tài)標(biāo)記為已刪除狀態(tài)之后,所述方法還包括:
3.如權(quán)利要求1所述的方法,其特征在于,在執(zhí)行數(shù)據(jù)刪除語句,將所述數(shù)據(jù)刪除語句指向的數(shù)據(jù)記錄的狀態(tài)標(biāo)記為已刪除狀態(tài)之前,所述方法還包括:
4.如權(quán)利要求1所述的方法,其特征在于,在執(zhí)行數(shù)據(jù)刪除語句,將所述數(shù)據(jù)刪除語句指向的數(shù)據(jù)記錄的狀態(tài)標(biāo)記為已刪除狀態(tài)之后,所述方法還包括:
5.如權(quán)利要求1所述的方法,其特征在于,在執(zhí)行所述數(shù)據(jù)更新語句,將所述目標(biāo)數(shù)據(jù)記錄中的目標(biāo)字段的值更新為所述數(shù)據(jù)插入語句所指示的待插入的值,以及將所述目標(biāo)數(shù)據(jù)記錄的狀態(tài)標(biāo)記為未刪除狀態(tài)之后,所述方法還包括:
6.如權(quán)利要求5所述的方法,其特征在于,所述數(shù)據(jù)表各數(shù)據(jù)記錄的數(shù)據(jù)標(biāo)識(shí)為所述數(shù)據(jù)表中各數(shù)據(jù)記錄的id值;
7.如權(quán)利要求1至6中任一項(xiàng)所述的方法,其特征在于,在針對(duì)接收到的數(shù)據(jù)插入語句,確定一條可用于插入數(shù)據(jù)的目標(biāo)數(shù)據(jù)記錄之前,所述方法還包括:
8.一種數(shù)據(jù)處理裝置,包括:
9.一種電子設(shè)備,包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)一個(gè)或多個(gè)程序,所述一個(gè)或多個(gè)程序當(dāng)被包括多個(gè)應(yīng)用程序的電子設(shè)備執(zhí)行時(shí),使得所述電子設(shè)備執(zhí)行以下操作: