The invention discloses a method and a device for realizing read and write separation of a database, belonging to the technical field of data processing. The database includes the main library and from the library, from the library is on the primary database backup, the method includes: receiving the application server sends the structured query language SQL access request; according to the SQL access request access to the SQL access request corresponding to the type of operation and the SQL access request identifier; if the operation type is written the type of operation, the SQL access request to the corresponding writing data to be written to the main library; if the operation type is a read operation type, according to the request identifier and write separate table to determine whether the need to separate read and write, if you need to read and write separate, read from the SQL library from the corresponding data access request, read write separate table including request identification need to read and write separate SQL access requests. The device comprises a receiving module, a first acquiring module, a writing module and a reading module. The invention can reduce the difficulty of application development.
【技術(shù)實(shí)現(xiàn)步驟摘要】
實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離的方法和裝置
本專利技術(shù)涉及數(shù)據(jù)處理
,特別涉及一種實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離的方法和裝置。
技術(shù)介紹
在互聯(lián)網(wǎng)數(shù)據(jù)庫解決方案中,MySQL(關(guān)系型數(shù)據(jù)庫)是一種比較常用的數(shù)據(jù)庫,MySQL在數(shù)據(jù)訪問并發(fā)量較高的情況下,一般會采用讀寫分離的技術(shù)實(shí)現(xiàn)數(shù)據(jù)的讀操作和寫操作,讀寫分離是指在數(shù)據(jù)庫中設(shè)置一個主庫和至少一個從庫,主庫中的數(shù)據(jù)實(shí)時(shí)同步到從庫中,主庫擔(dān)任寫操作,從庫擔(dān)任讀操作。其中,主庫對應(yīng)的連接串,用于唯一標(biāo)識主庫,每個從庫對應(yīng)的連接串,用于唯一標(biāo)識從庫。當(dāng)某個應(yīng)用程序想要實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離時(shí),該應(yīng)用程序的開發(fā)人員先將主庫的連接串寫入該應(yīng)用程序包括的所有寫操作的SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)語句中,將從庫的連接串寫入該應(yīng)用程序包括的所有讀操作的SQL語句中。在運(yùn)行該應(yīng)用程序時(shí),當(dāng)運(yùn)行到讀操作類型的SQL語句且該SQL語句中包括主庫的連接串時(shí),應(yīng)用程序根據(jù)主庫的連接串,從主庫中讀取該SQL語句對應(yīng)的數(shù)據(jù);當(dāng)運(yùn)行到讀操作類型的SQL語句且該SQL語句中包括從庫的連接串時(shí),應(yīng)用程序根據(jù)從庫的連接串,從從庫中讀取該SQL語句對應(yīng)的數(shù)據(jù)。在實(shí)現(xiàn)本專利技術(shù)的過程中,專利技術(shù)人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:上述方法是通過編程實(shí)現(xiàn)讀寫分離,這樣增加了應(yīng)用程序的開發(fā)難度。
技術(shù)實(shí)現(xiàn)思路
為了解決現(xiàn)有技術(shù)的問題,本專利技術(shù)提供了一種實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離的方法和裝置。技術(shù)方案如下:一種實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離的方法,所述數(shù)據(jù)庫包括主庫和從庫,所述從庫是對所述主庫的備份,所述方法包括:接收應(yīng)用服務(wù)器發(fā)送的結(jié)構(gòu)化查詢語言SQL訪問請 ...
【技術(shù)保護(hù)點(diǎn)】
一種實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離的方法,其特征在于,所述數(shù)據(jù)庫包括主庫和從庫,所述從庫是對所述主庫的備份,所述方法包括:接收應(yīng)用服務(wù)器發(fā)送的結(jié)構(gòu)化查詢語言SQL訪問請求;根據(jù)所述SQL訪問請求,獲取所述SQL訪問請求對應(yīng)的操作類型和所述SQL訪問請求的請求標(biāo)識;如果所述操作類型為寫操作類型,則將所述SQL訪問請求對應(yīng)的待寫入數(shù)據(jù)寫入所述主庫中;如果所述操作類型為讀操作類型,根據(jù)所述請求標(biāo)識和讀寫分離表確定是否需要讀寫分離,如果需要讀寫分離,從所述從庫中讀取所述SQL訪問請求對應(yīng)的數(shù)據(jù),所述讀寫分離表包括需要進(jìn)行讀寫分離的SQL訪問請求的請求標(biāo)識。
【技術(shù)特征摘要】
1.一種實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離的方法,其特征在于,所述數(shù)據(jù)庫包括主庫和從庫,所述從庫是對所述主庫的備份,所述方法包括:接收應(yīng)用服務(wù)器發(fā)送的結(jié)構(gòu)化查詢語言SQL訪問請求;根據(jù)所述SQL訪問請求,獲取所述SQL訪問請求對應(yīng)的操作類型和所述SQL訪問請求的請求標(biāo)識;如果所述操作類型為寫操作類型,則將所述SQL訪問請求對應(yīng)的待寫入數(shù)據(jù)寫入所述主庫中;如果所述操作類型為讀操作類型,根據(jù)所述請求標(biāo)識和讀寫分離表確定是否需要讀寫分離,如果需要讀寫分離,從所述從庫中讀取所述SQL訪問請求對應(yīng)的數(shù)據(jù),所述讀寫分離表包括需要進(jìn)行讀寫分離的SQL訪問請求的請求標(biāo)識。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:根據(jù)讀寫信息記錄表,在所述讀寫分離表中添加或刪除SQL訪問請求的請求標(biāo)識,所述讀寫信息記錄表用于存儲所述應(yīng)用服務(wù)器歷史發(fā)送的SQL訪問請求的讀寫信息;或者,在所述讀寫分離表中添加或刪除用戶選擇的SQL訪問請求。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)讀寫信息記錄表,在所述讀寫分離表中添加或刪除SQL訪問請求的請求標(biāo)識或刪除所述讀寫分離表包括的部分SQL訪問請求的請求標(biāo)識,包括:從讀寫信息記錄表中選擇操作類型為讀操作類型且讀寫信息滿足預(yù)設(shè)讀寫分離條件的SQL訪問請求的請求標(biāo)識,將所述選擇的請求標(biāo)識添加到所述讀寫分離表中;或者,根據(jù)讀寫信息記錄表,從所述讀寫分離表中選擇讀寫信息不滿足預(yù)設(shè)讀寫分離條件的SQL訪問請求的請求標(biāo)識,將所述選擇的請求標(biāo)識,從所述讀寫分離表中刪除。4.根據(jù)所述權(quán)利要求2所述的方法,其特征在于,所述方法還包括:獲取所述SQL訪問請求的讀寫信息;根據(jù)所述讀寫信息,更新所述讀寫信息記錄表中的所述SQL訪問請求對應(yīng)的讀寫信息。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述SQL訪問請求,獲取所述SQL訪問請求對應(yīng)的操作類型和所述SQL訪問請求的請求標(biāo)識,包括:解析所述SQL訪問請求,從所述SQL訪問請求中獲取所述SQL訪問請求對應(yīng)的操作類型;對所述SQL訪問請求進(jìn)行歸一化處理,得到處理后的SQL訪問請求;對所述處理后的SQL訪問請求進(jìn)行消息摘要算法第五版MD5類運(yùn)算,得到所述SQL訪問請求的請求標(biāo)識。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,如果所述數(shù)據(jù)庫包括多個從庫,所述從所述從庫中讀取所述SQL訪問請求對應(yīng)的數(shù)據(jù),包括:從所述多個從庫中選擇從庫,從所述選擇的從庫中讀取所述SQL訪問請求對應(yīng)的數(shù)據(jù)。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述從所述多個從庫中選擇從庫,包括:獲取所述多個從庫中的每個從庫的同步時(shí)延信息,根據(jù)所述每個從庫的同步時(shí)延信息,從所述多個從庫中選擇同步時(shí)延最小或者同步時(shí)延信息滿足所述SQL訪問請求對應(yīng)的同步時(shí)延要求的從庫;或者,從所述讀寫分離表中獲取所述SQL訪問請求對應(yīng)的從庫,所述讀寫分離表還包括需要進(jìn)行讀寫分離的SQL訪問請求對應(yīng)的從庫;或者,獲取所述多個從庫中的每個...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:吳炳錫,
申請(專利權(quán))人:北京新媒傳信科技有限公司,
類型:發(fā)明
國別省市:北京,11
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。