MySQL優化(一) 概述

2021-09-25 21:54:13 字數 1312 閱讀 5972

2.在硬體級別進行優化

3.平衡可移植性和效能

資料庫效能取決於資料庫級別的多個因素,例如表,查詢和配置設定。這些軟體構造導致硬體級別的cpu和i / o操作,必須盡可能地最小化並盡可能高效。

使資料庫應用程式快速執行的最重要因素是其基本設計:

**結構合理嗎?特別是,列是否具有正確的資料型別,並且每個表是否具有適合工作型別的列?例如,執行頻繁更新的應用程式通常具有許多具有少量列的表,而分析大量資料的應用程式通常具有很少列的表。

是否有適當的 索引來提高查詢效率?

是否為每個表使用適當的儲存引擎,並利用您使用的每個儲存引擎的優勢和功能?特別是,事務性儲存引擎(例如innodb 非 事務性儲存引擎)的選擇 myisam 對於效能和可伸縮性來說非常重要。

注意

innodb是新錶的預設儲存引擎。實際上,高階 innodb效能特徵意味著 innodb表通常優於更簡單的myisam表,尤其是對於繁忙的資料庫。

每個表是否使用適當的行格式?此選擇還取決於用於表的儲存引擎。特別是,壓縮表使用較少的磁碟空間,因此需要較少的磁碟i / o來讀取和寫入資料。壓縮適用於具有innodb表的所有型別的工作負載 以及唯讀 myisam表。

應用程式是否使用適當的 鎖定策略?例如,通過允許可能的共享訪問,以便資料庫操作可以併發執行,並在適當時請求獨佔訪問,以便關鍵操作成為最高優先順序。同樣,儲存引擎的選擇也很重要。該innodb儲存引擎處理大部分鎖定的問題,而不需要您的參與,允許在資料庫更好的併發,減少試驗和調整的金額,讓您的**。

是否正確使用了用於快取的所有記憶體區域?也就是說,足夠大以容納頻繁訪問的資料,但不能太大以至於它們會超載物理記憶體並導致分頁。要配置的主要記憶體區域是innodb緩衝池,myisam金鑰快取和mysql查詢快取。

磁碟需要一段時間才能找到一塊資料。對於現代磁碟,平均時間通常低於10毫秒,因此理論上可以做到大約100次尋找。這個時間用新磁碟慢慢改善,並且很難針對單個表進行優化。優化尋道時間的方法是將資料分配到多個磁碟上。

當磁碟位於正確位置時,需要讀取或寫入資料。使用現代磁碟,乙個磁碟可提供至少10-20mb / s的吞吐量。這比搜尋更容易優化,因此可以從多個磁碟並行讀取。

當資料在主儲存器中時,必須處理它以獲得結果。與記憶體量相比具有大表是最常見的限制因素。但是對於小型表,速度通常不是問題。

當cpu需要的資料量超過cpu快取容量時,主記憶體頻寬成為瓶頸。對於大多數系統來說,這是乙個不常見的瓶頸,但需要去關注這些。

要在可移植的mysql程式中使用面向效能的sql擴充套件,您可以在/*! */注釋分隔符的語句中包含特定於mysql的關鍵字。其他sql伺服器忽略注釋的關鍵字。

mysql集群 (一)概述

集群 cluster 技術是指一組相互犭蟲立的計算機,利用高速通訊網路組成乙個計算機系統,每個群集節點 即集群中的每台計算機 都是可以自主執行的乙個犭蟲立伺服器。這些伺服器可以彼此通訊,對網路客戶機來說就像是形成了乙個單一系統,協同起來向使用者提 用程式 系統資源和資料,並以單一系統的模式加以管理。...

MySQL基礎 一 概述

一 概述 1 db database 資料庫,儲存資料的容器 2 dbms database management system 資料庫管理系統,又稱為資料庫軟體或資料庫產品,用於建立或管理db,常見的資料庫管理系統 mysql oracle db2 sqlserver等 3 sql structu...

MySQL學習記錄(一) 概述

最近在看的mysql,現在把mysql的的的中的內容都總結出來,鞏固一下。主流資料庫廠商有oracle,microsoft,informix,sybase和ibm。開源的資料庫,主要有mysql,oracle和microsoft sql server這三個庫。我學習的是mysql資料庫,看的書是 s...