張寶燕
(晉中學(xué)院,山西 晉中 030600)
基于遺傳算法的MYSQL數(shù)據(jù)庫(kù)檢索策略優(yōu)化與設(shè)計(jì)
張寶燕
(晉中學(xué)院,山西 晉中 030600)
文章借鑒國(guó)內(nèi)外數(shù)據(jù)庫(kù)廠商的數(shù)據(jù)庫(kù)檢索優(yōu)化,結(jié)合遺傳算法對(duì)數(shù)據(jù)庫(kù)檢索進(jìn)行了優(yōu)化設(shè)計(jì),每個(gè)部分都從遺傳算法自身的編碼定義、基因結(jié)構(gòu)、染色體結(jié)構(gòu)、適應(yīng)度函數(shù)、選擇算子、組合交叉、變異算法等多個(gè)部分進(jìn)行了設(shè)計(jì),以達(dá)到數(shù)據(jù)庫(kù)檢索優(yōu)化的目的,實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)能夠自我動(dòng)態(tài)調(diào)整運(yùn)行狀態(tài),也能夠接受人工干預(yù)的檢索調(diào)優(yōu)方式,實(shí)現(xiàn)更大范圍內(nèi)的可適應(yīng)性.
遺傳算法;數(shù)據(jù)庫(kù)檢索優(yōu)化;MySQL數(shù)據(jù)庫(kù)
目前數(shù)據(jù)庫(kù)的發(fā)展和關(guān)系數(shù)據(jù)庫(kù)技術(shù)的發(fā)展密不可分.關(guān)系數(shù)據(jù)庫(kù)理論的發(fā)展建立,為系統(tǒng)的開發(fā)、維護(hù)大型數(shù)據(jù)庫(kù)提供了理論基礎(chǔ),同時(shí)為科學(xué)高效的數(shù)據(jù)庫(kù)存儲(chǔ)、數(shù)據(jù)庫(kù)記錄檢索、優(yōu)化,提供強(qiáng)有力的設(shè)計(jì)規(guī)范[1].計(jì)算機(jī)在數(shù)據(jù)庫(kù)的管理存儲(chǔ)以及檢索方面對(duì)于應(yīng)用程序的實(shí)際應(yīng)用有很多方面的作用影響.數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS在面臨多用戶環(huán)境下,作為標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)支持管理,能夠逐步地從角色、權(quán)限、框架下完成實(shí)際應(yīng)用的受限管理,這種安全策略是數(shù)據(jù)庫(kù)在數(shù)據(jù)資源的權(quán)限限定中提供的安全保障和管理限制,有了這個(gè)部分的框架設(shè)計(jì),能夠?yàn)橄到y(tǒng)在資源分配和受限環(huán)境中的修改使用提供幫助.本課題的目的在于,能夠?qū)崿F(xiàn)對(duì)MYSQL數(shù)據(jù)庫(kù)檢索引擎及其檢索優(yōu)化器的設(shè)計(jì),能夠?yàn)殛P(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)和實(shí)現(xiàn)提供一種解決方案.
目前數(shù)據(jù)庫(kù)優(yōu)化技術(shù)主要包括兩個(gè)方面:
0.1數(shù)據(jù)庫(kù)關(guān)鍵外部參數(shù)配置
一般地,數(shù)據(jù)庫(kù)系統(tǒng)參數(shù)都能夠?yàn)榫唧w的實(shí)際應(yīng)用,提供一些關(guān)鍵的,簡(jiǎn)要的優(yōu)化控制,這種多維度下各個(gè)參數(shù)的具體設(shè)計(jì),能夠使得管理員更具現(xiàn)實(shí)的具體硬件條件,以及所要面對(duì)的具體實(shí)際問(wèn)題,進(jìn)行具體詳細(xì)的策略配置,這種配置在實(shí)際的程序應(yīng)用部署是必要的,對(duì)于發(fā)揮出硬件設(shè)備系統(tǒng)最大化效能,資源分配合理化管理都是很必要的.這種配置的方式存在的問(wèn)題在于,它的設(shè)置往往是靜態(tài)配置,很少涉及到動(dòng)態(tài)配置,而且靜態(tài)配置的過(guò)程,對(duì)于程序部署人員而言,缺少更多內(nèi)部實(shí)現(xiàn)信息的條件下,往往很難設(shè)計(jì)配置出最優(yōu)化的解決方案來(lái),它對(duì)于系統(tǒng)管理配置人員的要求很高.而且在實(shí)際的具體過(guò)程中,對(duì)于數(shù)據(jù)庫(kù)的訪問(wèn)情形,有時(shí)候難以用可以形式化的表達(dá)來(lái)反應(yīng)這種情形,甚至對(duì)于很多應(yīng)用情形而言,管理員也不明確具體的實(shí)際訪問(wèn)形式和特征.對(duì)于系統(tǒng)資源的配置存在很大的盲目性.
0.2查詢過(guò)程重用方法
查詢重用技術(shù),指的是形同模式下查詢語(yǔ)句的具體執(zhí)行效果.對(duì)于這種情形是非常常見(jiàn)的,例如實(shí)際的大量的同樣的查詢請(qǐng)求,新聞內(nèi)容的多次查詢,往往這種結(jié)構(gòu)是固定的,多次的.這在具體的實(shí)現(xiàn)中,就可以優(yōu)化為一次的語(yǔ)法分析,一次的數(shù)據(jù)查詢即可.對(duì)這種語(yǔ)句通過(guò)緩存策略存儲(chǔ)在數(shù)據(jù)庫(kù)當(dāng)中,對(duì)于發(fā)起的查詢請(qǐng)求,首先經(jīng)過(guò)數(shù)據(jù)庫(kù)緩存部分進(jìn)行存在性查找,然后實(shí)現(xiàn)對(duì)于具體的已有的查詢語(yǔ)句進(jìn)行緩存結(jié)果的直接調(diào)用,提高了查詢速率.
0.3查詢重寫規(guī)則重寫
查詢重寫是將查詢語(yǔ)句進(jìn)行具體分析,將其解析執(zhí)行分解為更高效的查詢方式來(lái)進(jìn)行語(yǔ)句轉(zhuǎn)換,使得查詢的實(shí)際效能更加高效.20世紀(jì)80年代IBM公司開發(fā)數(shù)據(jù)庫(kù)系統(tǒng)Starburst,就采用了這種關(guān)鍵性的優(yōu)化檢索技術(shù).
1.1編碼設(shè)計(jì)
將參數(shù)設(shè)計(jì)為影響數(shù)據(jù)庫(kù)運(yùn)行效率的幾大因素體現(xiàn)的屬性,分別為:索引緩存區(qū)、連接緩存區(qū)、內(nèi)存表緩存區(qū)、排序工作區(qū)、臨時(shí)表緩存區(qū)、重用查詢執(zhí)行結(jié)果緩存區(qū)、日志緩存區(qū).它們的配置參數(shù)都為整數(shù),所以其對(duì)應(yīng)的編碼方式,直接采用整數(shù)作為對(duì)應(yīng)的緩存區(qū)存儲(chǔ)空間大小.其中為了簡(jiǎn)化存儲(chǔ)字節(jié),默認(rèn)各個(gè)參數(shù)的單位配置,例如有的是kb單位,還有的是Mb單位,如果還有存在gb,以及tb甚至更大的單位,可以默認(rèn)制定,在解讀結(jié)果的時(shí)候,反向進(jìn)行就能夠獲得最終結(jié)果的含義.
1.2基因設(shè)計(jì)
基因類,是關(guān)于基因結(jié)構(gòu)的定義,它是能夠?qū)⒒虻慕Y(jié)果進(jìn)行程序存儲(chǔ)的類,是遺傳算法的最小單位,基因作為一個(gè)接口Gene,它提供了染色體訪問(wèn)接口,也就是說(shuō)不同的染色體,以及未來(lái)構(gòu)造的染色體,都能夠通過(guò)基因接口正確地根據(jù)已有基因來(lái)實(shí)現(xiàn)構(gòu)造自身的染色體結(jié)構(gòu).而這種可能就通過(guò)染色體的定義,以及基因接口的中間轉(zhuǎn)換來(lái)實(shí)現(xiàn)預(yù)先定義,使得之間的靈活訪問(wèn)和定義特別方便.按照其對(duì)應(yīng)的參數(shù),設(shè)定對(duì)應(yīng)的基因,它們采用整數(shù)基因的結(jié)構(gòu)來(lái)存儲(chǔ)設(shè)計(jì),分別是:索引緩存區(qū)基因、連接緩存區(qū)基因、內(nèi)存表緩存區(qū)基因、排序工作區(qū)基因、臨時(shí)表緩存區(qū)基因、重用查詢執(zhí)行結(jié)果緩存區(qū)基因、日志緩存區(qū)基因.
1.3染色體設(shè)計(jì)
染色體定義,他通過(guò)泛型機(jī)制來(lái)約束初始化染色體實(shí)現(xiàn)類的限定,染色體的泛型初始化只能是基因的實(shí)現(xiàn)才能夠初始化,也就是說(shuō)染色體內(nèi)部的結(jié)構(gòu)只能是有了基因才能初始化,沒(méi)有基因的染色體從定義中我們可以看到,無(wú)法進(jìn)行進(jìn)一步的組合交叉和變異以及其他選擇等運(yùn)算.由于染色體“基因位”的存在,因此,簡(jiǎn)單情況下,染色體元素通過(guò)數(shù)組的方式或者列表的方式存儲(chǔ)構(gòu)成染色體內(nèi)部基本結(jié)構(gòu).這樣同類型的染色體就能夠進(jìn)行對(duì)等位置的組合交叉操作,以及其他操作.染色體內(nèi)部,通過(guò)數(shù)組的形式,采用單一長(zhǎng)度的染色體結(jié)構(gòu)存儲(chǔ),對(duì)應(yīng)數(shù)組位置為:索引緩存區(qū)基因、連接緩存區(qū)基因、內(nèi)存表緩存區(qū)基因、排序工作區(qū)基因、臨時(shí)表緩存區(qū)基因、重用查詢執(zhí)行結(jié)果緩存區(qū)基因、日志緩存區(qū)基因.
1.4適應(yīng)性函數(shù)設(shè)計(jì)
適應(yīng)性選擇,是對(duì)種群當(dāng)中的個(gè)體適應(yīng)性判別的適應(yīng)度函數(shù)來(lái)控制的.適應(yīng)度函數(shù),提出了從某些角度去看,去評(píng)估,某候選解更加適合接近最終的最優(yōu)解或者次優(yōu)解.反之就是不適合,偏向于淘汰的過(guò)程.特別的,它增加了可行性解的判別,對(duì)于存在產(chǎn)生非可行解情況的進(jìn)化功能設(shè)計(jì),可行解的判別就有必要執(zhí)行,如果產(chǎn)生不是可行解的情況,就要被丟棄.設(shè)定sql語(yǔ)句備選方案為QTi,i=1,2,3,…,n.執(zhí)行sql語(yǔ)句時(shí)間函數(shù)為ESi,i=1,2,3,…,n.適應(yīng)度函數(shù)ff為:∑ESi(QTi).[5,6]
1.5選擇算子設(shè)計(jì)
選擇概率設(shè)定為0.53,可以通過(guò)GA_conf.property文件配置做具體修改.選擇內(nèi)部算法采用輪盤賭方式,逐個(gè)實(shí)現(xiàn)選擇組合交叉.
1.6組合交叉算子設(shè)計(jì)
對(duì)于組合交叉算子而言,它通過(guò)被遺傳算法對(duì)象進(jìn)行整合,通過(guò)配置文件的方式初始化遺傳算法各個(gè)配置參數(shù).例如組合交叉、變異、個(gè)體擴(kuò)展等,以及概率參數(shù)配置等等.而具體的組合交叉算子而言,首先存在尋找組合個(gè)體,以及兩兩組合策略選取的問(wèn)題.是否是傳統(tǒng)的兩兩組合,還是2+1組合,甚至更復(fù)雜.這取決于實(shí)際的應(yīng)用情形.高效地找到個(gè)體進(jìn)行交叉,能夠產(chǎn)生新的個(gè)體,它同變異算子一樣,都是為了搜索最優(yōu)解的存在而不斷地努力.簡(jiǎn)單地交叉運(yùn)算,就是隨機(jī)選擇發(fā)生交換的對(duì)等位置,而選擇交換位置和總體位置染色體長(zhǎng)度的比率,通過(guò)遺傳算法配置參數(shù)給定.根據(jù)隨機(jī)選取結(jié)果,將對(duì)應(yīng)位置上的基因進(jìn)行雙方互換.從而產(chǎn)生新的染色體.選擇概率設(shè)定為0.29,可以通過(guò)GA_conf.property文件配置做具體修改.能夠在基因位對(duì)應(yīng)的索引緩存區(qū)基因、連接緩存區(qū)基因、內(nèi)存表緩存區(qū)基因、排序工作區(qū)基因、臨時(shí)表緩存區(qū)基因、重用查詢執(zhí)行結(jié)果緩存區(qū)基因、日志緩存區(qū)基因之間將對(duì)應(yīng)的位置進(jìn)行基因交換,代交換的基因位通過(guò)選擇概率除以0.29乘以7取下整的方式計(jì)算偏移量.
1.7變異算子設(shè)計(jì)
染色體變異過(guò)程,在定義中較為簡(jiǎn)單,因?yàn)樗会槍?duì)個(gè)體自身,沒(méi)有和其他周圍的染色體產(chǎn)生關(guān)聯(lián),所以運(yùn)算開銷較小,而同樣的變異概率,也取決于遺傳算法對(duì)象的參數(shù)配置,這個(gè)概率一般而言會(huì)比較小.意味著變異過(guò)程只能是整體驅(qū)使下的極小范圍變異,大規(guī)模變異無(wú)疑是一個(gè)種群的滅頂之災(zāi).這里選擇概率設(shè)定為0.03,可以通過(guò)GA_conf.property文件配置做具體修改.
本文對(duì)MySQL數(shù)據(jù)庫(kù)檢索進(jìn)行了優(yōu)化,通過(guò)結(jié)合遺傳算法的優(yōu)勢(shì),能夠在復(fù)雜的應(yīng)用環(huán)境當(dāng)中體現(xiàn)出良好的性能.在設(shè)計(jì)過(guò)程當(dāng)中對(duì)遺傳算法的性能配置以及結(jié)構(gòu)進(jìn)行了探討,并對(duì)數(shù)據(jù)庫(kù)重要的參數(shù)配置結(jié)合遺傳算法進(jìn)行了優(yōu)化設(shè)計(jì).經(jīng)過(guò)測(cè)試發(fā)現(xiàn),MySQL數(shù)據(jù)庫(kù)對(duì)insert,select,delete關(guān)鍵字執(zhí)行速度要比update,alter等關(guān)鍵字要快,在sql存儲(chǔ)過(guò)程當(dāng)中,應(yīng)當(dāng)盡可能使用前面的關(guān)鍵字來(lái)實(shí)現(xiàn)其某一功能.通過(guò)該算法對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行檢索優(yōu)化在實(shí)際使用當(dāng)中取得了很好的效果.
[1] 陳子俠.城市卷煙配送線路的網(wǎng)格劃分算法[J].上海交通大學(xué)學(xué)報(bào),2013,37(7):1013-1017
[2] 張 潛,高立群,胡祥培,等.物流配送路徑多目標(biāo)優(yōu)化的聚類一改進(jìn)遺傳算法[J].控制與決策,2013(7):418-422
[3] 池 潔,李 莉.物流中配送區(qū)域與配送路線網(wǎng)絡(luò)優(yōu)化法[J].運(yùn)籌與管理,2013,12(2):123-126
[4] 吳冬暉,馬 良.最大團(tuán)問(wèn)題的改進(jìn)遺傳算法求解[J].計(jì)算機(jī)應(yīng)用,2008,28(12):3072-3073
[5] CHUANG J C.Distributed network storage sercice with qllal-of service quarantees[J].Journal of Network and Com.Puter Applications,2010,23(12):163-185
[6] SAM R T,JEAN Y P,TONG S.Heuristic approaches to veM.cle routing with backhauls and time windows[J].Computerand Operations Research,2014,23(11):1043-1057
Design and Optimization of the Search Policy for MYSQL Database System
ZHANG Baoyan
(Jinzhong University, Jinzhong 030600, China)
This paper referring to domestic and foreign database vendor database search optimization, combining the genetic algorithm was used to optimize the design of database search, each part are from the genetic algorithm code definitions, gene structure, genome structure, adapt to function, selection operator, cross combination, different algorithm and so on multiple parts of the design, in order to achieve database retrieval optimization and MySQL database can self dynamically adjusts the operating state, also can accept manual intervention search tuning methods, to achieve a greater range of adaptability.
genetic algorithm; database search optimization; MySQL database
2015-07-20
張寶燕(1982-),女,山西晉中人,碩士,晉中學(xué)院講師,主要從事數(shù)據(jù)研究.
1672-2027(2015)03-0045-03
TP315
A