本申請涉及數據庫性能優化領域,尤其涉及一種數據庫性能優化方法、裝置、電子設備及存儲介質。
背景技術:
1、在大數據和高并發的時代,數據庫優化的重要性愈加凸顯。數據庫優化是確保系統高效運作、滿足用戶需求的必要手段。通過數據庫優化,能夠提升查詢性能、降低資源占用、提高系統穩定性,最終提升用戶體驗和系統的可維護性。
2、現有的數據庫優化工具,例如sqladvisor和oracle?tuning?advisor,其主要通過靜態分析來提供索引和執行計劃建議,即在不執行實際查詢操作的情況下,分析數據庫的結構、表之間的關系、索引以及其他數據庫對象的配置,以此為基礎提供索引和執行計劃建議。但是,靜態分析在處理復雜的查詢場景(如多表join和嵌套子查詢)時,由于無法考慮查詢在不同執行環境下的表現以及無法動態適應查詢模式的變化等原因,容易產生誤判,使用不當時反而會導致數據庫的查詢性能下降,因此亟需一種數據庫性能優化方法、裝置、電子設備及存儲介質來解決上述存在的問題。
技術實現思路
1、本申請提供了一種數據庫性能優化方法、裝置、電子設備及存儲介質,以提升數據庫的查詢性能。
2、第一方面,本申請提供了一種數據庫性能優化方法,所述方法包括:
3、獲取查詢數據,對所述查詢數據進行解析得到所述查詢數據對應的查詢模式;
4、基于所述查詢模式,在預設的模式庫中獲取與所述查詢模式匹配的歷史查詢模式;所述模式庫中的每個所述歷史查詢模式均存在至少一組對應的提示語句組合,每組所述提示語句組合均對應至少一條優化建議;
5、在獲取到與所述查詢模式匹配的所述歷史查詢模式的情況下,將所述歷史查詢模式對應的所有提示語句組合作為有效提示語句組合;在未獲取到與所述查詢模式匹配的所述歷史查詢模式的情況下,對所述查詢模式進行解析并基于解析結果生成至少一組有效提示語句組合;
6、基于各組所述有效提示語句組合對應的優化建議對所述查詢模式分別進行測試并記錄性能數據,根據預設的選取規則以及各組所述有效提示語句組合對應的所述查詢模式的性能數據,選取至少一組所述有效提示語句組合作為所述查詢模式的最優提示語句組合。
7、第二方面,本申請提供了一種數據庫性能優化裝置,所述裝置包括:
8、慢日志采集模塊,用于獲取慢查詢日志中新增的查詢數據,對所述查詢數據進行解析得到所述查詢數據對應的查詢模式;
9、歷史分析模塊,用于基于所述查詢模式,在預設的模式庫中獲取與所述查詢模式匹配的歷史查詢模式;所述模式庫中的每個所述歷史查詢模式均存在至少一組對應的提示語句組合,每組所述提示語句組合均對應至少一條優化建議;
10、查詢分析模塊,用于在獲取到與所述查詢模式匹配的所述歷史查詢模式的情況下,將所述歷史查詢模式對應的所有提示語句組合作為有效提示語句組合;在未獲取到與所述查詢模式匹配的所述歷史查詢模式的情況下,對所述查詢模式進行解析并基于解析結果生成至少一組有效提示語句組合;
11、測試模塊,用于基于各組所述有效提示語句組合對應的優化建議對所述查詢模式分別進行測試并記錄性能數據,根據預設的選取規則以及各組所述有效提示語句組合對應的所述查詢模式的性能數據,選取至少一組所述有效提示語句組合作為所述查詢模式的最優提示語句組合。
12、第三方面,本申請提供了一種電子設備,包括:至少一個通信接口;與所述至少一個通信接口相連接的至少一個總線;與所述至少一個總線相連接的至少一個處理器;與所述至少一個總線相連接的至少一個存儲器,其中,所述處理器被配置為用于執行上述第一方面所述的一種數據庫性能優化方法。
13、第四方面,本申請還提供了一種計算機存儲介質,存儲有計算機可執行指令,所述計算機可執行指令用于執行本申請上述第一方面所述的數據庫性能優化方法。
14、本申請實施例提供的上述技術方案與現有技術相比具有如下優點:本申請實施例提供的數據庫性能優化方法,在獲取到查詢數據并解析得到對應的查詢模式后,通過分析模式庫中已存儲的歷史查詢模式,在存在與查詢模式相匹配的歷史查詢模式的情況下,將該歷史查詢模式對應的提示語句組合作為有效提示語句組合,反之則對查詢模式進行解析并生成有效提示語句組合,再基于各組有效提示語句組合所對應的優化建議分別對查詢模式進行測試并記錄性能數據,選取性能數據最優時查詢模式對應的有效提示語句組合作為該查詢模式的最優提示語句組合。相較于現有技術中采用靜態分析在處理復雜的查詢場景時存在的無法考慮查詢在不同執行環境下的表現、無法動態適應查詢模式的變化,因而容易產生誤判導致數據庫查詢性能下降的問題,本申請提供的技術方案實現了在不改變查詢數據中sql語句結構的前提下,能夠針對不同執行環境以及不同查詢模式,提供最合適的提示語句組合作為數據庫查詢性能優化的參考方案,因此不易產生誤判,提高了數據庫查詢性能優化的適用性和可靠性。
1.一種數據庫性能優化方法,其特征在于,包括:
2.根據權利要求1所述的數據庫性能優化方法,其特征在于,在選取至少一組所述有效提示語句組合作為所述查詢模式的最優提示語句組合之后,還包括:
3.根據權利要求1所述的數據庫性能優化方法,其特征在于,對所述查詢模式進行解析并基于解析結果生成至少一組有效提示語句組合,包括:
4.根據權利要求3所述的數據庫性能優化方法,其特征在于,所述執行計劃包括掃描方式、連接順序和創建臨時表情況中的至少一項;所述性能瓶頸包括索引未命中情況、連接順序錯誤情況、臨時表排序和文件排序中的至少一項;所述優化建議包括添加索引、調整連接順序和改寫查詢結構中的至少一項。
5.根據權利要求1所述的數據庫性能優化方法,其特征在于,所述基于各組所述有效提示語句組合對應的優化建議對所述查詢模式分別進行測試并記錄性能數據的步驟,于預設的獨立測試環境中進行。
6.根據權利要求1所述的數據庫性能優化方法,其特征在于,在選取至少一組所述有效提示語句組合作為所述查詢模式的最優提示語句組合之后,還包括:
7.根據權利要求1-6任一項所述的數據庫性能優化方法,其特征在于,獲取查詢數據,對所述查詢數據進行解析得到所述查詢數據對應的查詢模式,包括:
8.一種數據庫性能優化裝置,其特征在于,所述裝置包括:
9.一種電子設備,其特征在于,包括:至少一個通信接口;與所述至少一個通信接口相連接的至少一個總線;與所述至少一個總線相連接的至少一個處理器;與所述至少一個總線相連接的至少一個存儲器,其中,所述處理器被配置為能夠實現如權利要求1-7中任一項所述的數據庫性能優化方法。
10.一種計算機存儲介質,其特征在于,存儲有計算機可執行指令,所述計算機可執行指令用于執行如權利要求1-7中任一項所述的數據庫性能優化方法。