本發明專利技術公開了動態索引創建方法、計算機設備及可讀存儲介質,屬于數據庫索引創建技術領域。本發明專利技術的動態索引創建方法適用為分區表創建索引,通過讀取記錄文件中最后一條數據,以提取最后一條數據的記錄時間及相應的執行標識;根據當前時間、記錄時間和執行標識識別最后一條數據對應的分區表是否為歷史分區表;若分區表為歷史分區表,采用第一預設規則根據記錄時間創建與歷史分區表關聯的索引條目,直至完成對所有歷史分區表的索引創建;若分區表為當前分區表,采用第二預設規則根據記錄時間創建與當前分區表關聯的索引條目,以避免長期占用系統和數據庫資源。
【技術實現步驟摘要】
本專利技術涉及數據庫索引創建,尤其涉及動態索引創建方法、計算機設備及可讀存儲介質。
技術介紹
1、在數據庫中,尤其對于大量數據通常以表的形式存儲,一般表是按小時分區的,因此,1天的表單被拆分成24張分區表。然而,采用條件查詢數據時,查詢速度慢,甚至導致系統查詢崩潰。為了解決這個問題,可為表添加索引以便于數據查詢。考慮到分區表是動態創建的(每個月創建下個月的表),且已安裝的項目也存在大量歷史分區表,當前小時的表也在不停的寫入數據,目前的索引方法無法適應動態創建的分區表,創建索引占用大量磁盤空間,為數據動態寫入分區表單造成影響。
技術實現思路
1、針對現有分區表查詢速度慢,創建索引需占用較大的磁盤空間,影響數據動態寫入分區表單的問題,,現提供一種旨在靈活創建索引,避免長期占用系統資源,避免數據動態寫入對分區表單造成影響的動態索引創建方法、計算機設備及可讀存儲介質。
2、本專利技術提供了一種動態索引創建方法,用于為分區表創建索引,包括:
3、獲取與所述分區表關聯的記錄文件中最后一條數據,提取所述最后一條數據的記錄時間及相應的執行標識;
4、根據當前時間、所述記錄時間和所述執行標識識別所述最后一條數據對應的分區表是否為歷史分區表;
5、若所述分區表為歷史分區表,采用第一預設規則根據所述記錄時間創建與所述歷史分區表關聯的索引條目;
6、若所述分區表為當前分區表,采用第二預設規則根據所述記錄時間創建與所述當前分區表關聯的索引條目。p>7、優選的,所述記錄文件采用升序排序的方式記錄各個所述分區表的記錄時間和各個分區表的執行標記;
8、所述執行標記包括歷史循環標記和當次執行標記兩種,所述歷史循環標記與所述歷史分區表對應,所述當次執行標記與所述當前分區表對應。
9、優選的,所述根據當前時間、所述記錄時間和所述執行標識識別所述最后一條數據對應的分區表是否為歷史分區表,包括:
10、判斷所述記錄時間是否存在,所述記錄時間的格式為年月日時;
11、若存在所述記錄時間,以時為單位將所述當前時間的前一小時的作為結束時間;
12、判斷所述記錄時間是否大于所述結束時間;
13、若所述記錄時間大于所述結束時間,表示所述分區表為所述當前分區表;
14、若所述記錄時間小于或等于所述結束時間,表示所述分區表為所述歷史分區表。
15、優選的,若不存在所述記錄時間,查詢數據庫中的所有分區表,按表名升序排序順序,獲取最小時間對應的分區表的記錄時間,將所述記錄時間存儲于所述記錄文件中,將與所述記錄時間關聯的執行標記設置為歷史循環標記;
16、判斷所述記錄時間是否存在;
17、若不存在所述記錄時間,則結束;
18、若存在所述記錄時間,以時為單位將所述當前時間的前一小時的作為結束時間,判斷所述記錄時間是否大于所述結束時間。
19、優選的,所述第一預設規則包括:
20、以第一預設頻率為周期,查詢與所述記錄文件關聯的任務文件中是否有與所述記錄時間關聯的腳本數據,且相應執行標記為當次執行標記;
21、若所述任務文件中沒與所述記錄時間關聯的腳本數據,且相應執行標記為歷史循環標記,將所述記錄時間轉換為起始時間戳,將所述結束時間轉換為結束時間戳;
22、判斷所述起始時間戳是否小于或等于所述結束時間戳;
23、若所述起始時間戳小于或等于所述結束時間戳;
24、將所述起始時間戳轉為預設格式,存入數組中;
25、將所述起始時間戳加1小時后,將所述起始時間戳轉換為預設格式,作為下一條待創建索引條目的分區表的記錄時間,將所述歷史循環標記作為與所述記錄時間關聯的執行標記存入所述記錄文件中,重復執行n次以獲取所述數組中的至少n個數據的表名,根據所述表名創建索引條目;
26、其中,n為正整數。
27、優選的,若查詢與所述記錄文件關聯的任務文件中有與所述記錄時間關聯的腳本數據且相應的執行標記為當次執行標記,所述分區表為當前分區表,采用第二預設規則根據所述記錄時間創建與所述當前分區表關聯的索引條目。
28、優選的,若所述起始時間戳大于所述結束時間戳,將與所述記錄時間對應的執行標記設置為當次執行標記,采用第二預設規則根據所述記錄時間創建與所述當前分區表關聯的索引條目。
29、優選的,所述第二預設規則包括:
30、以第二預設頻率為周期,查詢與所述記錄文件關聯的任務文件中是否有與所述記錄時間關聯的腳本數據及相應的當次執行標記;若是,將所述記錄時間轉換為起始時間戳,將所述起始時間戳轉為預設格式,存入數組中,將所述起始時間戳加1小時后,將所述起始時間戳轉換為預設格式,作為下一條待創建索引條目的分區表的記錄時間,將所述當次執行標記作為與所述記錄時間關聯的執行標記存入所述記錄文件中,獲取所述數組中數據的表名,根據所述表名創建索引條目。
31、優選的,所述分區表為至少一個類別的分區表單。
32、本專利技術還提供了一種計算機設備,包括存儲器、處理器以及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現上述方法的步驟。
33、本專利技術還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現上述方法的步驟。
34、上述技術方案的有益效果:
35、本技術方案中,本專利技術的動態索引創建方法適用為分區表創建索引,通過讀取記錄文件中最后一條數據,以提取最后一條數據的記錄時間及相應的執行標識;根據當前時間、記錄時間和執行標識識別最后一條數據對應的分區表是否為歷史分區表;若分區表為歷史分區表,采用第一預設規則根據記錄時間創建與歷史分區表關聯的索引條目,直至完成對所有歷史分區表的索引創建;若分區表為當前分區表,采用第二預設規則根據記錄時間創建與當前分區表關聯的索引條目,以避免長期占用系統和數據庫資源,同時,索引創建到當前小時的前一小時,避免對當前小時動態寫入數據的分區表影響。
本文檔來自技高網...
【技術保護點】
1.一種動態索引創建方法,用于為分區表創建索引,其特征在于,包括:
2.根據權利要求1所述的動態索引創建方法,其特征在于,所述記錄文件采用升序排序的方式記錄各個所述分區表的記錄時間和各個分區表的執行標記;
3.根據權利要求1所述的動態索引創建方法,其特征在于,所述根據當前時間、所述記錄時間和所述執行標識識別所述最后一條數據對應的分區表是否為歷史分區表,包括:
4.根據權利要求3所述的動態索引創建方法,其特征在于,若不存在所述記錄時間,查詢數據庫中的所有分區表,按表名升序排序順序,獲取最小時間對應的分區表的記錄時間,將所述記錄時間存儲于所述記錄文件中,將與所述記錄時間關聯的執行標記設置為歷史循環標記;
5.根據權利要求3所述的動態索引創建方法,其特征在于,所述第一預設規則包括:
6.根據權利要求5所述的動態索引創建方法,其特征在于,若查詢與所述記錄文件關聯的任務文件中有與所述記錄時間關聯的腳本數據且相應的執行標記為當次執行標記,所述分區表為當前分區表,采用第二預設規則根據所述記錄時間創建與所述當前分區表關聯的索引條目。p>7.根據權利要求5所述的動態索引創建方法,其特征在于,若所述起始時間戳大于所述結束時間戳,將與所述記錄時間對應的執行標記設置為當次執行標記,采用第二預設規則根據所述記錄時間創建與所述當前分區表關聯的索引條目。
8.根據權利要求1所述的動態索引創建方法,其特征在于,所述第二預設規則包括:
9.根據權利要求1所述的動態索引創建方法,其特征在于,所述分區表為至少一個類別的分區表單。
10.一種計算機設備,包括存儲器、處理器以及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于:所述處理器執行所述計算機程序時實現權利要求1至9任一項所述方法的步驟。
11.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于:所述計算機程序被處理器執行時實現權利要求1至9任一項所述方法的步驟。
...
【技術特征摘要】
1.一種動態索引創建方法,用于為分區表創建索引,其特征在于,包括:
2.根據權利要求1所述的動態索引創建方法,其特征在于,所述記錄文件采用升序排序的方式記錄各個所述分區表的記錄時間和各個分區表的執行標記;
3.根據權利要求1所述的動態索引創建方法,其特征在于,所述根據當前時間、所述記錄時間和所述執行標識識別所述最后一條數據對應的分區表是否為歷史分區表,包括:
4.根據權利要求3所述的動態索引創建方法,其特征在于,若不存在所述記錄時間,查詢數據庫中的所有分區表,按表名升序排序順序,獲取最小時間對應的分區表的記錄時間,將所述記錄時間存儲于所述記錄文件中,將與所述記錄時間關聯的執行標記設置為歷史循環標記;
5.根據權利要求3所述的動態索引創建方法,其特征在于,所述第一預設規則包括:
6.根據權利要求5所述的動態索引創建方法,其特征在于,若查詢與所述記錄文件關聯的任務文件中有與所述記錄時間關聯的腳本數據且相...
【專利技術屬性】
技術研發人員:魏瑩,丁軼,
申請(專利權)人:上海寰創通信科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。