免費學習推薦:mysql影片教學
文章目錄
- 1 影響效能的幾個面向
- 1.1 硬體方面
- 1.2 伺服器系統 ##1.3 資料庫存儲引擎的選擇
- 1.4 資料庫參數配置
- 1.5 資料庫結構設計與SQL語句(重點)
2 硬體方面- 2.1 CPU資源與可用記憶體大小
- 2.1.1 如何選擇CPU
- 2.1.2 記憶體
- #2.1.2.1 常用MySQL儲存引擎
- 2.1.2.2 提示
- 2.1.2.3 如何選擇記憶體
# 2.2 磁碟的設定與選擇- 2.2.1 使用傳統機器硬碟
- 2.2.2 使用RAID增強傳統機器硬碟的效能
-
- #2.2.2.1 什麼是RAID
- 2.2.2.2 RAID等級
- 2.2.2.2.1 RAID 0
- 2.2.2.2. 2 RAID 1
- 2.2.2.2.3 RAID 5 —— 常見的RAID組別
- 2.2.2.2.4 RAID 10 —— 常用的RAID組別
#2.2.2.3 RAID等級的選擇
2.2.3 使用固態儲存SSD和PCIe卡 - 2.2.4 使用網路儲存NAS和SAN
- 2.2.4.1 網路儲存使用的場景
- 2.2.4.2 網路效能的限制
- 2.2.4.3 網路對效能的影響
2.3 總結
#3 作業系統對效能的影響- ##3.1 CentOS系統參數最佳化
- 5 MySQL體系結構
1.1 硬體方面
通常個人電腦速度慢,我們都會說是因為電腦硬體的問題,通常是CPU,內存,磁碟IO等因素,因此在伺服器上也會出現這個問題。
1.2 伺服器系統一般個人電腦的作業系統都是windows,不同版本的windows系統的效能都不相同,或是配置了某一些參數導致效能的不同。這對於伺服器系統也是一樣,參數的設定也會影響伺服器效能。
1.3 資料庫儲存引擎的選擇MySQL具有外掛程式儲存引擎,可以根據不同的業務需求選擇不同的儲存引擎。
而不同的儲存引擎也有不同的特點:- InnoDB:事務級儲存引擎,完美支援行級鎖,事務ACID特性。
對於不同儲存引擎,它的參數配置都不盡相同,有些參數對儲存引擎的影響是微乎其微,但有些參數卻對性能有決定性作用。因此我們會根據所選的儲存引擎和不同的業務需求,對參數的最佳化也是很重要的。
1.5 資料庫結構設計與SQL語句(重點)#我們在進行資料庫結構設計的時候應該考慮到今後我們要在資料庫上執行怎樣的sql語句,來對錶結構進行查詢和更新,只有這樣才能設計出符合要求的表結構。
對於慢查詢,是導致效能低下的罪魁禍首,而它就是由於我們對資料庫表結構設計不合理而產生的。而對於這類sql來說,也是最難優化的,因為專案一旦上線,就很難對資料庫表結構進行修改。
因此我們最佳化資料庫效能的重點在於:
- #資料庫表結構設計
SQL語句的編寫和最佳化
2 硬體方面
##2.1 CPU資源與可用記憶體大小
2.1.1 如何選擇CPU
通常在選擇CPU的時候,我們都希望CPU的頻率和核心數量兩者都盡量高,但由於成本或各種因素,往往只能迫使我們選擇其中的一種。那我們應該如何選擇最優的方案?因此,在購買CPU時我們需要注意幾點問題:
- 我們的應用程式時CPU密集型的嗎?
- 如果我們的應用是CPU密集型的話,要加快sql的處理速度,顯然我們需要更好的CPU,而不是更多的CPU。
- 對於目前的MySQL而言,還不支援duoCPU對相同SQL並發處理。
- 我們系統的並發量如何?
- 如果我們系統需要更多吞吐量,那麼我們的CPU就越多越好。假設我們有40個CPU,那我們是不是可以同時處理40個SQL了呢。
- 衡量資料庫處理能力的指標:QPS,指的是同時處理SQL的數量。但這個指標是在1s中處理SQL的數量,但上一點闡述的同時處理是在奈秒的維度上。
- MySQL通常是使用在web應用上的,往往並發量比較大,這時CPU數量比CPU頻率更為重要。
- 我們所使用的MySQL的版本
- 在5.0版本之前,MySQL對多核心的CPU支援並不好,對系統的限制是很嚴重的,在現在5.6,5.7版本上,對多核心CPU的支援已經有了很大的改善。因此建議使用最新版的MySQL版本,以達到更好的效能。
- 選擇32位元還是64位元的CPU?
- 目前伺服器的CPU預設都是64位元架構的,但要注意,要檢查好系統是否在64位元上安裝了32位元的伺服器版本,這會嚴重影響伺服器效能。
2.1.2 記憶體
記憶體的大小直接影響資料庫的效能。目前記憶體的效率要遠高於磁碟。因此把資料緩存到記憶體中,可以大大提高伺服器效能。
2.1.2.1 常用MySQL儲存引擎
有兩個常用的儲存引擎:MyISAM和InnoDB。
MyISAM:
索引儲存在記憶體中,資料保存在硬碟中。
InnoDB:
索引和資料都保存在記憶體中,從而提高資料庫的運作效率。
2.1.2.2 提示
- 雖然記憶體的數量是越多越好,但是對系統的效能影響是有限的。
假如我們資料庫的資料有100G,那麼記憶體選擇在128G左右就可以達到最大的效能了,這時如果所有的資料都是熱數據,那麼都會快取在記憶體當中,沒有必要上256G的內存,但是選擇更大的內存,對於作業系統等其他服務的性能也會有相應的提高,並且在短期內不用考慮升級內存的問題。 - 對於記憶體快取的寫入操作時,可以進行延緩寫入,減少資料庫的壓力。
內存在讀取操作上已經有了很好的支持,在寫入操作上也可以在記憶體上完成,我們最後都需要將資料寫入到磁碟中,雖然不能避免寫入磁碟的操作,但是我們可以對寫入操作進行延緩,將多次寫入合併成一次寫入,減輕資料庫的壓力。資料庫提供了類似的功能,可以在快取池中將多次的寫入操作合併成一次,最終寫入磁碟。
2.1.2.3 如何選擇記憶體
#盡量使用主機板能夠支援最大頻率的記憶體
- 組成購買升級,每個通道的記憶體盡量相同品牌、顆粒、頻率、電壓、校驗技術和型號。
- 根據資料庫大小選擇記憶體。
2.2 磁碟的設定與選擇
雖然記憶體對資料庫效能有很大的作用,但我們不能忽略IO子系統對效能的影響。目前我們常用的磁碟選擇有以下4種:
2.2.1 使用傳統機器硬碟
特點:儲存空間大,價格低,使用最多,最常見,讀取、寫入較慢
- 如何選擇傳統機器硬碟?
- 儲存容量
- 傳輸速度
- 存取時間
- 主軸轉速
- 物理尺寸
2.2.2 使用RAID增強傳統機器硬碟的效能
2.2.2.1 什麼是RAID
RAID是磁碟冗餘餘隊列的簡稱(Redundant Arrays of Independent Disks),簡單來說RAID的作用就是把多個容量較小的磁碟組成一組容量更大的磁碟,並提供資料冗餘來確保資料完整性的技術。
2.2.2.2 RAID等級
#2.2.2.2.1 RAID 0
RAID 0 是最早出現的RAID模式,也稱為資料條帶。是組件磁碟陣列中最簡單的一種形式,只需要2塊以上的硬碟即可,成本低,可以提高整個磁碟的效能和吞吐量。 RAID 0沒有提供冗餘或錯誤修復能力,但是實現成本是最低的。但在考慮到資料復原和可靠性因素,RAID 0成為了成本最高的配置,因為RAID 0中沒有冗餘,而且資料在損壞的機率在當個磁碟中的還要高。因為資料在任意一個磁碟中損壞都會造成資料的遺失。例如由3塊磁碟組成的RAID 0,其損壞的幾率是單一硬碟的3倍。
因此RAID 0適用於不會單一遺失資料的情況,例如:可以隨時可以從其他資料庫複製的備庫或某些只需一次性使用的資料庫。
簡單來說,RAID 0就是將硬碟串聯在一起,形成更大的磁碟,例如:
並且在並發的過程中,可以達到相當於單一硬碟3倍的效能。
2.2.2.2.2 RAID 1
RAID 1 又稱磁碟映像,原理是把一個磁碟的資料鏡像到另一個磁碟上,也就是說數據在寫入一塊磁碟的同時,會在另一塊限制的磁碟上產生鏡像文件,在不影響效能情況下最大限度的保證系統的可靠性和可修復性。
它與RAID 0不同的地方在,中間的地方畫上了一個等於號。兩個磁碟的資料都是一樣的,具備良好的冗餘能力,但成本會相應的提高,當出現磁碟故障的情況下也可以正常運行,但需要即使更換故障的磁碟,否則系統也會崩潰。
在更換新的磁碟後,資料的同步需要消耗很多時間,雖然不會對資料的存取造成影響,但係統的效能是會下降的。
RAID 1在許多情況下,可以提供很好的讀取效能,並且在不同磁碟間冗餘數據,因此數據冗餘性很好。 RAID 1在讀取上比RAID 0 好,因此比較適合在存放日誌或類似的工作。
2.2.2.2.3 RAID 5 —— 常見的RAID組別
RAID 5 又稱為分散式奇偶校驗磁碟陣列。透過分散式奇偶校驗區塊把資料分散到多個磁碟上,這樣如果任何一個磁碟資料失效,都可以從奇偶校驗區塊重建。但是如果兩塊磁碟失效,則整個磁碟區的資料都無法復原。
可見,每個磁碟中分別有Dp,Cp,Bp,Ap,如果其中一塊磁碟出現問題,則可以透過其他三塊磁碟的資料和奇偶校驗值重新計算磁碟的數據。
對於RAID 0和RAID 1而言,這是最經濟的冗餘配置,因為整個陣列配置只需要1塊磁碟的容量就可以了。
在RAID 5上寫速度較慢,因為每次寫都要在磁碟之間進行2次讀和2次寫,以計算存儲校驗位的數值,但是,隨機讀和順序讀都很快,因為在讀取的時候不需要計算奇偶校驗位,因此RAID 5 更適合以讀為主的資料庫業務。
RAID 5發生的最大問題是在磁碟失效的時候,因為資料需要重新分配到其他磁碟上,這將會嚴重影響磁碟的效能,所以使用RAID 5最好使用在重讀的情況下。
2.2.2.2.4 RAID 10 —— 常用的RAID組別
RAID 10又稱分片的鏡像。它是對磁碟先做RAID 1之後對兩組RAID 1的磁碟再做RAID 0,所以對讀寫都有良好的效能,相對於RAID 5重建起來更簡單,速度也更快。
在RAID 10上,如果損壞了一個硬碟,那麼對效能會造成嚴重的影響,因為在讀寫過程中,本來可以在兩塊相鄰的磁碟中同時讀取,如果損壞了一塊,那麼只能從單一磁碟進行讀取,因此最壞的情況下,我們的效能會降低50%。
2.2.2.3 RAID等級的選擇
等級 | 特點 | 是否冗餘 | 盤數 | 讀取 | 寫入 |
---|---|---|---|---|---|
RAID 0 | 便宜,快速,危險 | 否 | N | 快 | 快 |
#RAID 1 | 高速讀,簡單,安全性 | 有 | 2 | 快 | 慢 |
#RAID 5 | 安全,成本折疊中 | 有 | N 1 | 快 | #取決於最慢的磁碟 |
貴,高速,安全 | 有 | #2N | #快 | 快 |
以上是大數據學習的MYSQL進階的詳細內容。更多資訊請關注PHP中文網其他相關文章!

MySQL使用的是GPL許可證。 1)GPL許可證允許自由使用、修改和分發MySQL,但修改後的分發需遵循GPL。 2)商業許可證可避免公開修改,適合需要保密的商業應用。

選擇InnoDB而不是MyISAM的情況包括:1)需要事務支持,2)高並發環境,3)需要高數據一致性;反之,選擇MyISAM的情況包括:1)主要是讀操作,2)不需要事務支持。 InnoDB適合需要高數據一致性和事務處理的應用,如電商平台,而MyISAM適合讀密集型且無需事務的應用,如博客系統。

在MySQL中,外鍵的作用是建立表與表之間的關係,確保數據的一致性和完整性。外鍵通過引用完整性檢查和級聯操作維護數據的有效性,使用時需注意性能優化和避免常見錯誤。

MySQL中有四種主要的索引類型:B-Tree索引、哈希索引、全文索引和空間索引。 1.B-Tree索引適用於範圍查詢、排序和分組,適合在employees表的name列上創建。 2.哈希索引適用於等值查詢,適合在MEMORY存儲引擎的hash_table表的id列上創建。 3.全文索引用於文本搜索,適合在articles表的content列上創建。 4.空間索引用於地理空間查詢,適合在locations表的geom列上創建。

toCreateAnIndexinMysql,usethecReateIndexStatement.1)forasingLecolumn,使用“ createIndexIdx_lastNameEnemployees(lastName); 2)foracompositeIndex,使用“ createIndexIndexIndexIndexIndexDx_nameOmplayees(lastName,firstName,firstName);” 3)forauniqe instex,creationexexexexex,

MySQL和SQLite的主要區別在於設計理念和使用場景:1.MySQL適用於大型應用和企業級解決方案,支持高性能和高並發;2.SQLite適合移動應用和桌面軟件,輕量級且易於嵌入。

MySQL中的索引是數據庫表中一列或多列的有序結構,用於加速數據檢索。 1)索引通過減少掃描數據量提升查詢速度。 2)B-Tree索引利用平衡樹結構,適合範圍查詢和排序。 3)創建索引使用CREATEINDEX語句,如CREATEINDEXidx_customer_idONorders(customer_id)。 4)複合索引可優化多列查詢,如CREATEINDEXidx_customer_orderONorders(customer_id,order_date)。 5)使用EXPLAIN分析查詢計劃,避

在MySQL中使用事務可以確保數據一致性。 1)通過STARTTRANSACTION開始事務,執行SQL操作後用COMMIT提交或ROLLBACK回滾。 2)使用SAVEPOINT可以設置保存點,允許部分回滾。 3)性能優化建議包括縮短事務時間、避免大規模查詢和合理使用隔離級別。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版
中文版,非常好用

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載
最受歡迎的的開源編輯器