?

基于MySQL數據庫的優化

2021-02-18 23:17翁春榮
科學與生活 2021年30期

翁春榮

摘要:MySQL各項運行指標一直是衡量數據庫性能的關鍵因素。當前網絡環境下數據總量在持續增長,對數據庫查詢的需求也不斷加大。響應時間提出了更嚴格的要求。針對當前網絡流行的開源數據庫MySQL,分析了執行SQL查詢語句的實現過程,在此基礎上,提出了幾種切實可行的性能優化方法,保證了SQL語句執行的正確性和準確性效率。

關鍵詞:MySQL;數據庫切分;索引;

一、引言

在5G與社區網站、微博和抖音融合的時代相關動態實時信息所占比例越來越大,網站應用也越來越廣泛高并發、高流量、大數據量等問題也成為互聯網時代的焦點特征。數據庫作為網站存儲的核心,有其優化問題它已成為各大門戶網站關注的焦點。在各種數據庫中MySQL因其低成本和開源而被許多網站開發被愛的人。在2019年,techtarget數據庫網站根據管理優先權對中國數據管理做了調查,結果顯示45.5%的用戶表示愿意搬到MySQL數據庫平臺。

隨著企業信息化建設的深入,數據庫管理系統日益成為公司和大型企業的核心IT系統,數據庫管理系統已成為支撐應用系統的核心軟件。隨著數據庫技術的發展,出現了許多成熟的商業數據庫管理系統,如Oracle、lnformix、Sybase、SQLServer等待但是,目前國內數據庫產品基本上還是空白。為了培養未來的獨立知識,國內產權數據庫必須有一定的技術積累。在許多公開場合在源數據庫產品中,MySQL是一款優秀的產品,MySQL的InnoDB引擎已經完成,它完全支持事務,具有優異的性能,并支持行級鎖。InnoDB引擎的代碼結構,非常適合于研究和分析。另外,MySQL也是非常實用和廣泛使用的家庭組。

一方面,MySQL數據庫的優化是基于滿足用戶的需求,走出系統瓶頸,提升MySQL系統服務整體性能。另一方面,合理的結構設計和參數調整,提高系統對用戶操作的響應速度同時,應盡可能節省系統資源,以便能夠提供更大的系統負載能力。優化指標、表格結構設計、參數配置等。它使數據庫吞吐量更強,響應更快。建議在MySQL中使用使用showstatus語句查詢一些MySQL數據庫服務器的狀態消息。

二、MySQL的結構優化

因為MySQL數據庫是基于行(row)存儲的,數據庫操作IO以頁面(塊)的形式執行,處理過程相同需要訪問的頁面越少,IO操作的數量就越少,直接訪問也就越少提高系統性能。

(一)字符優化

字符集直接決定了MySQL中數據的存儲和編碼方式不同的字符集用于表示的內容,這將占用很大的空間差異。如果選擇使用適當的字符集,則可以盡可能減少數據量減少IO操作的數量。

(二)數據類型優化

最耗時的數據庫操作是I/O處理。大多數數據庫操作超過90%的時間花在IO讀寫上。最小化IO讀寫它可以大大提高數據庫操作的性能。字段類型的優化主要適用于記錄數量大、數據量大的情況對于大型場景,優化的數據類型設置可以有效地節省存儲成本和成本IO處理速度。例如,盡量不要對數字類型使用double,而不僅僅是存儲同時,也會出現精度問題。

(三)數據儲存優化

當數據表中存在文本類型或大型varchar類型時如果大多數閱讀和寫作不需要這個領域,我們應該將其拆分為單獨的表,以減少公共數據占用的存儲空間,空間這樣做的優點是每個數據塊中可以存儲的數據塊的數量大大增加,這不僅可以減少物理I/O的數量,還可以大大提高內存中的緩存命中率。

三、MySQL的查詢優化

通過分析查詢語句,您可以了解查詢語句的執行情況并找到找出查詢語句的執行瓶頸,然后優化查詢??梢允褂肕ySQL來提取提供的解釋和描述語句用于分析查詢語句的執行。

(一)索引對查詢速度的影響

MySQL可以通過為數據表設計合理的索引來提高性能查詢速度快。在使用索引的過程中,還需要注意一些情況。

1.使用LIKE關鍵字的查詢語句

在使用LIKE關鍵字的查詢語句中,如果匹配字符串的第二部分,其中一個字符為“%”,索引將不起作用。只有“%”不在第一個位置該索引僅在以下情況下有效。

2.使用多列索引的查詢語句

可以在MySQL中為多個字段編制索引。一個索引可以包括16個領域。對于多列索引,這些字段僅在查詢條件中使用僅當第一個字段為空時才使用索引。

3. 使用or關鍵字查詢語句

查詢語句的查詢條件中只有or關鍵字,or前后有兩個關鍵字.只有當條件中的所有列都是索引時,才會在查詢中使用索引,不要使用索引否則查詢將失敗。

(1)優化子查詢

MySQL子查詢可以嵌套在select語句中,子查詢可以是完整的。這是一個SQL操作,邏輯上需要多個步驟才能完成。雖然它可以檢查查詢語句靈活,但執行效率不高。執行子查詢時,MySQL將為內部查詢的結果創建一個臨時表,并從臨時表生成外部查詢語句查詢記錄從查詢表中獲取,查詢后臨時表被撤銷。因此,查詢速度會受到影響。

(2)優化插入記錄速度

在插入記錄操作期間影響插入速度的主要因素。根據這些情況,應該有索引、唯一性檢查、一次插入的記錄數等。在這種情況下,可以單獨進行優化。MyISAM引擎表的常用優化方法如下:禁用索引。將記錄插入非空表時,MySQL將根據表檢索記錄為插入的記錄編制索引。如果插入大量數據,索引將降級插入速度慢。要解決此問題,可以在插入記錄之前禁用該記錄插入數據后,使用索引打開索引。禁用唯一性檢查。在插入數據時,MySQL會記錄插入的記錄行唯一性檢查。此唯一性檢查將降低插入記錄的速度。通過為了減少這對查詢速度的影響,可以在插入記錄之前禁用它唯一性檢查在插入記錄后開始。禁用外鍵檢查。您可以在插入數據之前禁用外鍵查詢,數據插入完成后,將恢復外鍵檢查。禁止自動提交。插入數據前禁止自動提交的事務數數據導入完成后,執行恢復自動提交的操作。

四、MySQL的服務器環境優化

通過優化MySQL的參數,可以提高資源利用率,從而提高性能高MySQL服務器性能的目的。

key\buffer\usize:指示索引緩沖區的大小。添加索引緩沖區沖洗可以更好更快地處理索引。但是,如果該值太大,則會導致操作系統頻繁更改頁面,這會降低系統性能。

tablecahe:表示同時打開的表數。值越大,數字越大同時打開的表越多。但是,過多的開放表會影響系統化對查詢緩存大?。翰樵兙彌_區的大小。使用查詢緩沖區查詢區域可以提高查詢速度。該方法適用于修改操作少、執行頻繁的情況相同查詢操作的行。innodb\uBuffer\uPool\uSize:表示innodb類型的表和索引最大緩存值越大,查詢速度越快。

max_uuConnections:到數據庫的最大連接數。這個值太高了內存資源被浪費,這可能會導致MySQL服務器假死。

五、總結

雖然有多種數據庫優化方法,但面對大流量高并發數據有時仍然不能很好地解決問題,難以解決文件的讀寫速度在很大程度上限制了數據庫。但上述優化方法仍能提高其服務質量服務表現。

參考文獻

[1]蘇云,胡勇,蘇芳艷.基于數據庫和人工智能的船舶航行性能設計和優化[J].艦船科學技術,2021,43(20):46-48.

[2]劉杰逾.SQL數據庫性能優化必要性及其優化策略分析[J].電腦編程技巧與維護,2021(07):104-105.

[3]劉麗.A/D轉換器在船舶大規模數據庫優化管理中的應用[J].艦船科學技術,2021,43(10):136-138.

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合