• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于數(shù)據(jù)庫代理實(shí)現(xiàn)數(shù)據(jù)庫分表、分庫訪問的方案研究

      2019-02-14 16:20:28姬渭孟于雪蓮
      數(shù)字通信世界 2019年9期
      關(guān)鍵詞:存儲模塊語句應(yīng)用程序

      姬渭孟,于雪蓮

      (1.吉林移動業(yè)務(wù)支撐中心,長春 130000 ;2.中國聯(lián)通吉林省公司,長春 130000)

      1 方案提出的背景

      隨著MySQL 開源軟件的發(fā)展,由于其使用方便、安全維護(hù)簡單,越來越多的IT 系統(tǒng)開始采用MySQL 作為自己的數(shù)據(jù)庫,存儲系統(tǒng)數(shù)據(jù)。但此數(shù)據(jù)庫產(chǎn)品由于性能、安全等方面限制,一般來說建議單個(gè)數(shù)據(jù)庫容量不能過大(一般在1-2T 左右),單個(gè)數(shù)據(jù)庫表記錄數(shù)不能過多(建議單表數(shù)量不高于500萬),而在IT 系統(tǒng)中,往往有大量的數(shù)據(jù),常常單個(gè)數(shù)據(jù)庫達(dá)到10T 以上,單表超過一億條。目前通用的方法是采用分庫、分表的方式,通過對數(shù)據(jù)進(jìn)行分區(qū),將一個(gè)大數(shù)據(jù)庫分為多個(gè)小的數(shù)據(jù)庫,對于分表的方式,多通過表字段取模等方法,將一個(gè)數(shù)據(jù)庫表拆分成多個(gè)數(shù)據(jù)庫表。業(yè)務(wù)系統(tǒng)應(yīng)用程序在訪問和操作數(shù)據(jù)時(shí),在應(yīng)用程序側(cè)進(jìn)行判斷,確定要訪問和操作的數(shù)據(jù)庫和數(shù)據(jù)庫表,然后進(jìn)行訪問和操作。此方案的問題是應(yīng)用和數(shù)據(jù)耦合度高,應(yīng)用需要清楚了解自己所操作數(shù)據(jù)的位置(哪個(gè)分庫、哪個(gè)分表),當(dāng)數(shù)據(jù)量增加,數(shù)據(jù)庫、數(shù)據(jù)庫表進(jìn)行擴(kuò)展時(shí),如增加新數(shù)據(jù)庫、增加新數(shù)據(jù)庫表,都需要對應(yīng)用程序進(jìn)行改造,以訪問和操作新增加的數(shù)據(jù)庫、新的數(shù)據(jù)庫表,改造的工作量較大、工期長、風(fēng)險(xiǎn)較高。

      2 具體方案介紹

      本方案提出一種數(shù)據(jù)庫代理裝置,它由幾部分組成:(1)數(shù)據(jù)庫掃描模塊;(2)分庫分表策略存儲模塊;(3)SQL 語句接收和解析模塊;(4)SQL 語句執(zhí)行模塊;(5)結(jié)果返回模塊。

      數(shù)據(jù)庫掃描模塊通過數(shù)據(jù)庫連接池訪問底層的多個(gè)數(shù)據(jù)庫,將掃描結(jié)果進(jìn)行分析處理,形成數(shù)據(jù)庫分庫、分表信息,將這些信息存儲到分庫分表策略存儲模塊。前端應(yīng)用需要進(jìn)行SQL 語句執(zhí)行時(shí),首先訪問數(shù)據(jù)庫代理裝置的SQL 語句接收和解析模塊,提供需要執(zhí)行的SQL 語句,此模塊通過對SQL 語句進(jìn)行解析,獲取要訪問的數(shù)據(jù)庫對象信息,通過與分庫分表策略存儲模塊進(jìn)行交互,轉(zhuǎn)化成具體要訪問的實(shí)體數(shù)據(jù)庫和表,將解析結(jié)果傳遞給SQL 語句執(zhí)行模塊,通過數(shù)據(jù)庫連接池,連接到具體的分?jǐn)?shù)據(jù)庫,完成SQL 的執(zhí)行,將執(zhí)行結(jié)果記錄,并通過結(jié)果返回模塊與前端應(yīng)用進(jìn)行交互,將SQL 語句執(zhí)行結(jié)果返回給前端應(yīng)用。

      詳細(xì)處理步驟如下:

      步驟101:為數(shù)據(jù)庫代理裝置中數(shù)據(jù)庫掃描模塊創(chuàng)建連接池,與底層多個(gè)小的分?jǐn)?shù)據(jù)庫進(jìn)行鏈接,能否進(jìn)行訪問。

      步驟102:數(shù)據(jù)庫掃描模塊通過連接池,能夠訪問底層的各個(gè)小的數(shù)據(jù)庫,并可以訪問各個(gè)小的數(shù)據(jù)庫的數(shù)據(jù)庫對象(如數(shù)據(jù)庫表)。

      步驟103:數(shù)據(jù)庫掃描模塊掃描底層數(shù)據(jù)庫,獲取分庫分表信息。

      如一個(gè)完整的數(shù)據(jù)庫對象,通過之前人為定義的分庫分表路由策略,數(shù)據(jù)庫掃描模塊按照策略進(jìn)行掃描,最終確定每一個(gè)數(shù)據(jù)庫對象保存在哪幾個(gè)數(shù)據(jù)庫,或者保存在哪些分表中,包括數(shù)據(jù)庫名稱、分表的名稱。

      步驟104:數(shù)據(jù)庫掃描模塊掃描的結(jié)果與上次相比是否發(fā)生了變化?如新增數(shù)據(jù)庫、新增數(shù)據(jù)庫對象等。

      步驟105:如果發(fā)生了變化,則由數(shù)據(jù)庫掃描模塊更新分庫、分表信息到分庫分表策略存儲模塊。同時(shí)也提供手工訪問更新的功能。

      步驟106:如未發(fā)生變化,則記錄掃描日志記錄后,不再進(jìn)行處理。

      步驟107:當(dāng)應(yīng)用程序需要訪問數(shù)據(jù)庫執(zhí)行SQL 語句時(shí),首先訪問數(shù)據(jù)庫代理層的SQL 語句接收和解析模塊。

      步驟108:SQL 語句接收和解析模塊接收SQL 語句,應(yīng)用程序不再需要指明要訪問哪個(gè)分庫、哪個(gè)分表,只要指明訪問的數(shù)據(jù)即可。

      步驟109:SQL 語句接收和解析模塊與分庫分表策略存儲模塊通信,獲取實(shí)時(shí)的數(shù)據(jù)庫分庫、分表策略信息。

      步驟110:SQL 語句接收和解析模塊對SQL 訪問數(shù)據(jù)庫及表進(jìn)行解析匹配,將訪問對象轉(zhuǎn)換成具體訪問的數(shù)據(jù)庫名、數(shù)據(jù)庫分表名稱等信息。

      步驟111:SQL 語句接收和解析模塊將SQL 解析結(jié)果傳遞給SQL 執(zhí)行模塊。

      步驟112:SQL 執(zhí)行模塊通過數(shù)據(jù)庫連接池,訪問具體的分?jǐn)?shù)據(jù)庫和分表,將SQL 語句完整執(zhí)行,獲取最終執(zhí)行結(jié)果。

      并將執(zhí)行結(jié)果傳遞給結(jié)果返回模塊,由結(jié)果返回模塊與應(yīng)用進(jìn)行通信,并將具體的SQL 執(zhí)行結(jié)果返回給前端應(yīng)用,由應(yīng)用進(jìn)行處理。

      本方案的優(yōu)點(diǎn):應(yīng)用程序側(cè)不再需要指定要訪問的哪個(gè)數(shù)據(jù)庫,哪個(gè)具體的表,只需要明確訪問的數(shù)據(jù)內(nèi)容,由數(shù)據(jù)庫代理層通過內(nèi)部的相關(guān)模塊,獲取訪問數(shù)據(jù)庫、表的策略,獲取訪問路徑,這樣當(dāng)分?jǐn)?shù)據(jù)庫、數(shù)據(jù)庫分表發(fā)生變化時(shí),也不再需要通知應(yīng)用程序,由策略存儲模塊提供訪問策略,進(jìn)行訪問及操作。

      3 結(jié)束語

      在IT 軟件系統(tǒng)中,針對某些數(shù)據(jù)庫表數(shù)據(jù)量過大的情況,分散存儲在不同的數(shù)據(jù)庫,不同的表中。本方法通過提出一套數(shù)據(jù)庫代理裝置,有效解決了應(yīng)用軟件與數(shù)據(jù)庫耦合性高的問題。

      猜你喜歡
      存儲模塊語句應(yīng)用程序
      基于MinI0分布式存儲的微服務(wù)模塊開發(fā)應(yīng)用
      重點(diǎn):語句銜接
      Burden of Cirrhosis and Other Chronic Liver Diseases Caused by Specific Etiologies in China, 1990?2016:Findings from the Global Burden of Disease Study 2016
      刪除Win10中自帶的應(yīng)用程序
      精彩語句
      MiR-125a-5p is Upregulated in Plasma of Residents from An Electronic Waste Recycling Site
      數(shù)據(jù)采集系統(tǒng)在環(huán)保工程中的應(yīng)用研究
      如何搞定語句銜接題
      語文知識(2014年4期)2014-02-28 21:59:52
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      三星電子將開設(shè)應(yīng)用程序下載商店
      瓮安县| 怀化市| 河西区| 谷城县| 廊坊市| 沾益县| 万宁市| 阿合奇县| 五峰| 荆门市| 河曲县| 祁东县| 景洪市| 天津市| 雷山县| 高碑店市| 菏泽市| 盖州市| 延川县| 平塘县| 遵义县| 饶平县| 苏尼特左旗| 郑州市| 麦盖提县| 大名县| 宣城市| 安达市| 菏泽市| 海口市| 宜兴市| 临湘市| 丰原市| 肇东市| 襄汾县| 且末县| 温泉县| 诸暨市| 赤壁市| 德清县| 元氏县|