引列名生成模塊4根據(jù)計算模塊3計算出的次數(shù)占比生成索引列名并通過所以重建模塊根據(jù)索引列名創(chuàng)建數(shù)據(jù)庫索引,實現(xiàn)對數(shù)據(jù)庫自動創(chuàng)建最佳的索引,并進行動態(tài)更新。
[0052]進一步的,所述根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的系統(tǒng)還包括:設(shè)置模塊6,用于設(shè)置預(yù)設(shè)時間段以及預(yù)設(shè)時段。
[0053]進一步的,所述設(shè)置模塊6包括:
[0054]第一統(tǒng)計模塊61,用于統(tǒng)計預(yù)設(shè)時間段內(nèi)數(shù)據(jù)庫的訪問量;
[0055]第一設(shè)置模塊62,用于設(shè)置數(shù)據(jù)庫的訪問量最低的時段為預(yù)設(shè)時段。
[0056]從上述描述可知,通過設(shè)置數(shù)據(jù)庫的訪問量最低的時段為預(yù)設(shè)時段,從而在數(shù)據(jù)庫訪問量最低的時段創(chuàng)建數(shù)據(jù)庫索引,不影響用戶正常訪問數(shù)據(jù)庫。
[0057]請參照圖1,本發(fā)明的實施例一為:
[0058]—種根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的方法,包括:
[0059]S1、創(chuàng)建數(shù)據(jù)庫日志,記錄對數(shù)據(jù)表進行的數(shù)據(jù)庫操作,所述數(shù)據(jù)庫操作包括查詢、插入及修改;
[0060]S2、統(tǒng)計一天內(nèi)數(shù)據(jù)庫操作的總次數(shù)以及對數(shù)據(jù)表中每一列進行查詢、插入、修改的次數(shù);
[0061]S3、根據(jù)數(shù)據(jù)庫操作的總次數(shù)以及對數(shù)據(jù)表中每一列進行查詢、插入、修改的次數(shù)計算查詢、插入、修改的次數(shù)占比;
[0062]S4、根據(jù)查詢、插入以及修改的次數(shù)占比生成索引列名;具體為:對查詢次數(shù)占比高于50%的列創(chuàng)建索引列名或者保存已有的索引列名;對插入或修改次數(shù)占比高于50%的列不創(chuàng)建索引列名或者刪除已有的索引列名;
[0063]S5、在一天內(nèi)數(shù)據(jù)庫訪問量最低的時段根據(jù)索引列名創(chuàng)建數(shù)據(jù)庫索引。
[0064]例如,對一張10*3的數(shù)據(jù)表創(chuàng)建索引,創(chuàng)建日志記錄,記錄一天內(nèi)對這張數(shù)據(jù)表進行的數(shù)據(jù)庫操作,比如對第一行第二列進行查詢,第五行第二列進行插入,第三行第一列進行修改,等等。統(tǒng)計每一列的查詢、插入及修改次數(shù)以及次數(shù)占比,比如第一列查詢占比70 %,第二列查詢占比85 %,第三列插入或修改占比60 %,則為第一列和第二列創(chuàng)建索引列名,第三列不創(chuàng)建索引列名,如果凌晨時段對該數(shù)據(jù)表基本上不訪問,則在凌晨時段根據(jù)生成的索引列名為該數(shù)據(jù)表創(chuàng)建索引。
[0065]如果該數(shù)據(jù)表已經(jīng)有索引,而第一列查詢占比70 %,第二列查詢占比85 %,第三列插入或修改占比60%,則保存原第一列和第二列的索引列名,刪除原第三列的索引列名,根據(jù)新的索引列名為該數(shù)據(jù)表創(chuàng)建索引。
[0066]請參照圖2,本發(fā)明的實施例二為:
[0067]—種根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的系統(tǒng),包括:
[0068]設(shè)置模塊6,用于設(shè)置預(yù)設(shè)時間段以及預(yù)設(shè)時段;所述設(shè)置模塊6包括:第一統(tǒng)計模塊61,用于統(tǒng)計預(yù)設(shè)時間段內(nèi)數(shù)據(jù)庫的訪問量;第一設(shè)置模塊62,用于設(shè)置數(shù)據(jù)庫的訪問量最低的時段為預(yù)設(shè)時段。
[0069]創(chuàng)建模塊1,用于創(chuàng)建數(shù)據(jù)庫日志,記錄對數(shù)據(jù)表進行的數(shù)據(jù)庫操作,所述數(shù)據(jù)庫操作包括查詢、插入及修改;
[0070]統(tǒng)計模塊2,用于統(tǒng)計預(yù)設(shè)時間段內(nèi)數(shù)據(jù)庫操作的總次數(shù)以及對數(shù)據(jù)表中每一列進行查詢、插入、修改的次數(shù);
[0071]計算模塊3,用于根據(jù)數(shù)據(jù)庫操作的總次數(shù)以及對數(shù)據(jù)表中每一列進行查詢、插入、修改的次數(shù)計算查詢、插入、修改的次數(shù)占比;
[0072]索引列名生成模塊4,用于根據(jù)查詢、插入以及修改的次數(shù)占比生成索引列名;
[0073]索引創(chuàng)建模塊5,用于在預(yù)設(shè)時段內(nèi)根據(jù)索引列名創(chuàng)建數(shù)據(jù)庫索引。
[0074]綜上所述,本發(fā)明提供的根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的方法及系統(tǒng),通過設(shè)置模塊設(shè)置預(yù)設(shè)時間段和預(yù)設(shè)時段,創(chuàng)建模塊創(chuàng)建數(shù)據(jù)庫日志,從而能夠記錄對數(shù)據(jù)表中每一項內(nèi)容的數(shù)據(jù)庫操作,通過統(tǒng)計模塊能夠統(tǒng)計出預(yù)設(shè)時間段內(nèi)對數(shù)據(jù)表每一列查詢、插入、修改的次數(shù),進而通過計算模塊計算出每一列查詢、插入、修改的次數(shù)占比,由于查詢時利用索引可以提高查詢速度,而插入和修改時利用索引則需要對索引進行修改降低了性能,因此根據(jù)查詢、插入及修改的次數(shù)占比即可判斷此列是否需要創(chuàng)建索引,因而通過索引列名生成模塊根據(jù)查詢、插入以及修改的次數(shù)占比生成索引列名;再通過索引創(chuàng)建模塊在預(yù)設(shè)時段內(nèi)根據(jù)索引列名創(chuàng)建數(shù)據(jù)庫索引,既不會影響用戶訪問數(shù)據(jù)庫,又自動創(chuàng)建和更新了索引。
[0075]以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等同變換,或直接或間接運用在相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
【主權(quán)項】
1.一種根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的方法,其特征在于,包括: 創(chuàng)建數(shù)據(jù)庫日志,記錄對數(shù)據(jù)表進行的數(shù)據(jù)庫操作,所述數(shù)據(jù)庫操作包括查詢、插入及修改; 統(tǒng)計預(yù)設(shè)時間段內(nèi)數(shù)據(jù)庫操作的總次數(shù)以及對數(shù)據(jù)表中每一列進行查詢、插入、修改的次數(shù); 根據(jù)數(shù)據(jù)庫操作的總次數(shù)以及對數(shù)據(jù)表中每一列進行查詢、插入、修改的次數(shù)計算查詢、插入、修改的次數(shù)占比; 根據(jù)查詢、插入以及修改的次數(shù)占比生成索引列名; 在預(yù)設(shè)時段內(nèi)根據(jù)索引列名創(chuàng)建數(shù)據(jù)庫索引。2.根據(jù)權(quán)利要求1所述的根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的方法,其特征在于,所述“根據(jù)查詢、插入以及修改的次數(shù)占比生成索引列名”具體為: 對查詢次數(shù)占比高于50%的列創(chuàng)建索引列名; 對插入或修改次數(shù)占比高于50 %的列不創(chuàng)建索引列名。3.根據(jù)權(quán)利要求1所述的根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的方法,其特征在于,所述“根據(jù)查詢、插入以及修改的次數(shù)占比生成索引列名”具體為: 對查詢次數(shù)占比高于50%的列保存索引列名; 對插入或修改次數(shù)占比高于50 %的列刪除索引列名。4.根據(jù)權(quán)利要求1所述的根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的方法,其特征在于,所述預(yù)設(shè)時間段為一天。5.根據(jù)權(quán)利要求1所述的根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的方法,其特征在于,所述預(yù)設(shè)時段為預(yù)設(shè)時間段內(nèi)數(shù)據(jù)庫訪問量最低的時段。6.一種根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的系統(tǒng),其特征在于,包括: 創(chuàng)建模塊,用于創(chuàng)建數(shù)據(jù)庫日志,記錄對數(shù)據(jù)表進行的數(shù)據(jù)庫操作,所述數(shù)據(jù)庫操作包括查詢、插入及修改; 統(tǒng)計模塊,用于統(tǒng)計預(yù)設(shè)時間段內(nèi)數(shù)據(jù)庫操作的總次數(shù)以及對數(shù)據(jù)表中每一列進行查詢、插入、修改的次數(shù); 計算模塊,用于根據(jù)數(shù)據(jù)庫操作的總次數(shù)以及對數(shù)據(jù)表中每一列進行查詢、插入、修改的次數(shù)計算查詢、插入、修改的次數(shù)占比; 索引列名生成模塊,用于根據(jù)查詢、插入以及修改的次數(shù)占比生成索引列名; 索引創(chuàng)建模塊,用于在預(yù)設(shè)時段內(nèi)根據(jù)索引列名創(chuàng)建數(shù)據(jù)庫索引。7.根據(jù)權(quán)利要求6所述的根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的系統(tǒng),其特征在于,還包括:設(shè)置模塊,用于設(shè)置預(yù)設(shè)時間段以及預(yù)設(shè)時段。8.根據(jù)權(quán)利要求7所述的根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的系統(tǒng),其特征在于,所述設(shè)置模塊包括: 第一統(tǒng)計模塊,用于統(tǒng)計預(yù)設(shè)時間段內(nèi)數(shù)據(jù)庫的訪問量; 第一設(shè)置模塊,用于設(shè)置數(shù)據(jù)庫的訪問量最低的時段為預(yù)設(shè)時段。
【專利摘要】本發(fā)明提供了一種根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的方法,包括:創(chuàng)建數(shù)據(jù)庫日志,記錄對數(shù)據(jù)表進行的數(shù)據(jù)庫操作,所述數(shù)據(jù)庫操作包括查詢、插入及修改;統(tǒng)計預(yù)設(shè)時間段內(nèi)數(shù)據(jù)庫操作的總次數(shù)以及對數(shù)據(jù)表中每一列進行查詢、插入、修改的次數(shù);根據(jù)數(shù)據(jù)庫操作的總次數(shù)以及對數(shù)據(jù)表中每一列進行查詢、插入、修改的次數(shù)計算查詢、插入、修改的次數(shù)占比;根據(jù)查詢、插入以及修改的次數(shù)占比生成索引列名;在預(yù)設(shè)時段內(nèi)根據(jù)索引列名創(chuàng)建數(shù)據(jù)庫索引;本發(fā)明還提供一種根據(jù)日志分析自動創(chuàng)建數(shù)據(jù)庫索引的系統(tǒng),能夠?qū)?shù)據(jù)庫自動創(chuàng)建最佳的索引,并進行動態(tài)更新。
【IPC分類】G06F17/30
【公開號】CN105045851
【申請?zhí)枴緾N201510392124
【發(fā)明人】陳叢亮, 劉德建, 毛新生
【申請人】福建天晴數(shù)碼有限公司
【公開日】2015年11月11日
【申請日】2015年7月7日