本發明專利技術公開了一種處理數據庫操作請求的方法和設備,其中該方法包括:接收對于數據庫的操作請求;解析所述操作請求,以獲取所述操作請求中的第一數據表名;根據分表信息解析所述操作請求,以獲取所述操作請求中與所述第一數據表名相關聯的分表字段以及與該分表字段相對應的字段值,其中所述分表信息包括要進行分表的數據表的數據表名以及與該數據表名相關聯的分表字段;根據所述分表信息和所獲取的分表字段相對應的字段值,將所述操作請求中的第一數據表名修改為第二數據表名;以及將修改后的操作請求發送給數據庫服務器。
【技術實現步驟摘要】
本專利技術涉及數據庫技術,尤其涉及一種處理數據庫操作請求的方法和設備。
技術介紹
在計算機時代,出現了專門用于存儲、管理數據的數據庫系統,而且數據庫系統在網絡應用上日益普及。一般來說,數據庫系統中會包括一個或者多個數據庫,專門用于存儲某個應用的數據。在關系型數據庫中,數據一般分布在多張數據表中,每張數據表存在某個方面的數據。例如在一個常用的網絡應用的數據庫中,有一張數據表存儲用戶的基本信息,有另一張數據表存儲用戶的登錄信息等。隨著時代的發展和技術的進步,目前人類社會每天產生的數據量相當驚人,海量數據造成關系型數據庫(例如諸如MySQL)的數據表容量越來越大,一張表的條目(記錄)數可達幾千萬甚至上億條。數據庫在對數據表進行處理時,需要鎖表、操作、解鎖等幾個階段,一張數據表的記錄數過多,會造成很多操作同時等待解鎖,造成數據庫處理大型數據表時顯得力不從心,性能下降嚴重。為了提高數據庫操作數據表的性能,有必要將邏輯上的一張較大的表拆分成物理上的多張較小的子表。最常見的分表方案是在表結構里設置一個特殊的字段,以下稱其為分表字段,其類型一般為整數,也可能為字符串等等。不同的記錄根據分表字段值的不同,使用哈希等方式,將分表字段值與某個編號的子表關聯。此方案最大的缺點是需要應用編寫人員自己控制數據與具體的子表之間的對應關系,應用編寫人員必須對數據庫底層子表的實現方式非常了解,在編寫具體的業務邏輯的同時,還要分心于邏輯表與物理子表的關系處理上,開發效率受到嚴重影響。其次,此方案的分表策略定得過于死板,不夠靈活。如果要調整子表數量或是修改分表字段值與子表序號的對應關系,則應用編寫人員必須也對代碼作出相應修改,才能使應用在新的分表架構上正確運行,應用系統的維護成本很高。
技術實現思路
鑒于上述問題,提出了本專利技術,以便提供一種克服上述問題或者至少部分地解決上述問題的分配數據庫操作請求的方法和設備。依據本專利技術的一個方面,提供了一種處理數據庫操作請求的方法,其包括步驟接收對于數據庫的操作請求;解析該操作請求,以獲取該操作請求中的第一數據表名;根據分表信息解析該操作請求,以獲取該操作請求中與該第一數據表名相關聯的分表字段以及與該分表字段相對應的字段值,其中該分表信息包括要進行分表的數據表的數據表名以及與該數據表名相關聯的分表字段;根據該分表信息和所獲取的分表字段相對應的字段值,將該操作請求中的第一數據表名修改為第二數據表名;以及將修改后的操作請求發送給數據庫服務器。可選地,根據本專利技術的實施例的處理數據庫操作請求的方法還包括步驟如果該操作請求中不存在第一數據表名,則將該操作請求發送給數據庫服務器。可選地,根據本專利技術的實施例的處理數據庫操作請求的方法還包括步驟在該根據分表信息解析操作請求的步驟中,如果該第一數據表名不在該分表信息中,則將該操作請求發送給數據庫服務器;如果該第一數據表名在該分表信息中、但未從該操作請求中解析出與該第一數據表名相關聯的分表字段及該分表字段相對應的字段值,則返回錯誤提/Jn ο可選地,在根據本專利技術的實施例的處理數據庫操作請求的方法中,該分表信息還包括要進行分表的數據表的子表數量,該將操作請求中的第一數據表名修改為第二數據表名的步驟還包括根據與該分表字段相對應的字段值以及該數據表的子表數量,將該第一數據表名修改為第二數據表名。可選地,在根據本專利技術的實施例的處理數據庫操作請求的方法中,該第二數據表名對應于第一數據表分表之后生成的多個第二數據表之一,其包括第一數據表名以及第二數據表標識。可選地,在根據本專利技術的實施例的處理數據庫操作請求的方法中,該操作請求包括數據庫程序語言語句。可選地,在根據本專利技術的實施例的處理數據庫操作請求的方法中,該數據庫程序語言語句是結構化查詢語言SQL語句,該數據庫是MySQL數據庫。依據本專利技術的另一方面,提供了一種處理數據庫操作請求的設備,包括應用程序接口,適于從應用服務器接收對于數據庫的操作請求;解析器,適于解析該操作請求,以獲取該操作請求中的第一數據表名,并且根據分表信息解析該操作請求,以獲取該操作請求中與該第一數據表名相關聯的分表字段以及與該分表字段相對應的字段值,其中該分表信息包括要進行分表的數據表的數據表名以及與該數據表名相關聯的分表字段;操作請求修改器,適于根據該分表信息和所獲取的分表字段相對應的字段值,將該操作請求中的第一數據表名修改為第二數據表名;以及數據庫接口,適于將修改后的操作請求發送給數據庫服務器。可選地,在根據本專利技術的實施例的處理數據庫操作請求的設備中,如果該操作請求中不存在第一數據表名,則該數據庫接口將該操作請求發送給數據庫服務器。可選地,在根據本專利技術的實施例的處理數據庫操作請求的設備中,在該解析器根據分表信息解析操作請求時,如果該第一數據表名不在該分表信息中,則該數據庫接口將該操作請求發送給數據庫服務器;如果該第一數據表名在該分表信息中、但該解析器未從該操作請求中解析出與該第一數據表名相關聯的分表字段及該分表字段相對應的字段值,則返回錯誤提示。可選地,在根據本專利技術的實施例的處理數據庫操作請求的設備中,該分表信息還包括要進行分表的數據表的子表數量,該操作請求修改器根據與該分表字段相對應的字段值以及該數據表的子表數量,將該第一數據表名修改為第二數據表名。本專利技術提供了上述處理數據庫操作請求的方法和設備。根據本專利技術的實施例,根據來自數據庫服務器的分表信息,解析應用服務器對于數據庫的操作請求,以獲取第一數據表名、與其相關聯的分表字段以及字段值,并且根據該分表信息和字段值將第一數據表名修改為第二數據表名,并將修改后的操作請求發送給數據庫服務器。由此,使得分表的過程對應用服務透明化,應用編寫人員不再需要控制數據與具體的子表之間的對應關系,無論物理上存在多少張子表,應用編寫人員所面對的是始終是邏輯上的一張表,應用編寫人員不再需要關心數據庫分表策略的實現細節,可以專注于編寫具體的業務代碼,只需在對于數據庫的操作請求中包含分表字段的值即可。另外,根據本專利技術的實施例,通過更新分表信息,可以避免子表數量等分表信息的變化對應用代碼的影響,應用只需要開發一次,不再需要由于數據庫分表信息的調整而修改應用程序本身,極大地降低了維護成本。上述說明僅是本專利技術技術方案的概述,為了能夠更清楚了解本專利技術的技術手段,而可依照說明書的內容予以實施,并且為了讓本專利技術的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本專利技術的具體實施方式。附圖說明通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本專利技術的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖1是根據本專利技術的實施例的處理數據庫操作請求的方法的流程圖;圖2是根據本專利技術的一個實施例的處理數據庫操作請求的方法各步驟的流程圖;以及圖3是根據本專利技術的實施例的處理數據庫操作請求的設備以及系統的框圖。具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本文檔來自技高網...
【技術保護點】
一種處理數據庫操作請求的方法(100),包括步驟:接收對于數據庫的操作請求(S101);解析所述操作請求,以獲取所述操作請求中的第一數據表名(S103);根據分表信息解析所述操作請求,以獲取所述操作請求中與所述第一數據表名相關聯的分表字段以及與該分表字段相對應的字段值,其中所述分表信息包括要進行分表的數據表的數據表名以及與該數據表名相關聯的分表字段(S105);根據所述分表信息和所獲取的分表字段相對應的字段值,將所述操作請求中的第一數據表名修改為第二數據表名(S107);以及將修改后的操作請求發送給數據庫服務器(S109)。
【技術特征摘要】
1.一種處理數據庫操作請求的方法(100),包括步驟接收對于數據庫的操作請求(SlOl);解析所述操作請求,以獲取所述操作請求中的第一數據表名(S103);根據分表信息解析所述操作請求,以獲取所述操作請求中與所述第一數據表名相關聯的分表字段以及與該分表字段相對應的字段值,其中所述分表信息包括要進行分表的數據表的數據表名以及與該數據表名相關聯的分表字段(S105);根據所述分表信息和所獲取的分表字段相對應的字段值,將所述操作請求中的第一數據表名修改為第二數據表名(S107);以及將修改后的操作請求發送給數據庫服務器(S109 )。2.如權利要求1所述的方法,還包括步驟如果所述操作請求中不存在第一數據表名,則將所述操作請求發送給數據庫服務器。3.如權利要求1或2所述的方法,還包括步驟在所述根據分表信息解析操作請求的步驟中,如果所述第一數據表名不在所述分表信息中,則將所述操作請求發送給數據庫服務器;如果所述第一數據表名在所述分表信息中、但未從所述操作請求中解析出與所述第一數據表名相關聯的分表字段及該分表字段相對應的字段值,則返回錯誤提示。4.如權利要求1至3中的任一項所述的方法,其中所述分表信息還包括要進行分表的數據表的子表數量,所述將操作請求中的第一數據表名修改為第二數據表名的步驟還包括根據與所述分表字段相對應的字段值以及所述數據表的子表數量,將所述第一數據表名修改為第二數據表名。5.如權利要求1至4中的任一項所述的方法,其中所述第二數據表名對應于第一數據表分表之后生成的多個第二數據表之一,其包括第一數據表名以及第二數據表標識。6.如權利要求1至5中的任一項所述的方法,其中所述操作請求包括數據庫程序語言語句。7.如權利要求6所述的方法,其中所述數據庫程序語言語句是結構化查詢語言SQL語句,所述數據庫是MySQL數據庫。8.—種處理數據庫操作請求的設備(200),包括應用程序接口...
【專利技術屬性】
技術研發人員:朱超,陳超,桂勇哲,代兵,王超,
申請(專利權)人:北京奇虎科技有限公司,奇智軟件北京有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。