【MySQL性能优化】概述与优化方面(一)
轉(zhuǎn)載自?http://chenhaoxiang.cn/2018/02/04/1758/
像sql語句如何進行調(diào)優(yōu),基本上在中高級程序員面試中都有可能會被問到。
所以說,了解,或者學(xué)習(xí)一下如何進行sql調(diào)優(yōu)是必要的。
我會關(guān)于該sql調(diào)優(yōu)文章出一個系列的博客。與大家一起學(xué)下去
首先不具體進行介紹,先大體的概括一下,因為答案基本是死的,但是處理方式是活的
MySQL性能優(yōu)化/概述
1.數(shù)據(jù)庫的設(shè)計
目前只要知道三范式就可以了
2.數(shù)據(jù)庫的分表分庫
分庫分為兩種,水平分割和垂直分割
分表是在同一個數(shù)據(jù)庫當(dāng)中,減少一個表的查詢壓力
3.怎么定位慢查詢
如果需要知道定位在哪里進行sql調(diào)優(yōu),那么我們就需要慢查詢了
4.數(shù)據(jù)庫索引的優(yōu)化、索引原理
5.sql的調(diào)優(yōu)
6.數(shù)據(jù)庫的讀寫分離
可以使用mycat中間件來做讀寫分離
7.存儲過程、觸發(fā)器、函數(shù)
存儲過程你可以看成一塊sql語句,一個整體,也就是執(zhí)行很多條sql語句。
好處是安全性高,你看不到sql語句,你只需要傳參就行了。其實一般也就銀行項目用到。
弊端就是,sql語句都是寫死的,不好靈活改變。
MySQL如何實現(xiàn)優(yōu)化
1.數(shù)據(jù)庫設(shè)計合理
首先第一點,數(shù)據(jù)庫設(shè)計要合理,一般都要遵循三范式。
數(shù)據(jù)庫設(shè)計基本上考察的是工作經(jīng)驗,如果你經(jīng)驗不足,可能數(shù)據(jù)庫設(shè)計的不合理,導(dǎo)致開發(fā)困難。
2.添加索引
其次就是添加索引,如果不加索引,基本上查找都叫全表掃描
當(dāng)你使用了索引時,索引底層使用的BTree,和折半查找算法差不多,可以減少全表掃描的時間
索引分為:普通索引,主鍵索引,唯一索引和全文索引
3.分表分庫技術(shù)
還有就是分表分庫技術(shù),主要是為了減少單張的查詢量。
在外面的核心是通過哈希移植性,也就是取模分表,還有水平分割,垂直分割
4.讀寫分離
還有就是讀寫分離
也就是讀一個寫一個,減少io量,提高io性能
5.存儲過程
另外就是使用存儲過程,比直接執(zhí)行sql語句,使用jdbc連接效率高
這點基本
6.配置mysql最大連接數(shù)
其實就是并發(fā)的時候,提高了并發(fā)性能
一般在my.ini中配置
7.mysql服務(wù)器升級
也就是把服務(wù)器弄好一點
8.隨時清理碎片化
9.sql語句的調(diào)優(yōu)
其實也就是上面這九點。但是實際上需要我們調(diào)優(yōu)的核心只有:
sql語句調(diào)優(yōu),添加索引,分表分庫,讀寫分離,還有數(shù)據(jù)庫設(shè)計
其他的都是小細節(jié)上面的
怎么實現(xiàn)優(yōu)化,在后面的文章,我會一一道來
本文章由[諳憶]編寫, 所有權(quán)利保留。
歡迎轉(zhuǎn)載,分享是進步的源泉。
總結(jié)
以上是生活随笔為你收集整理的【MySQL性能优化】概述与优化方面(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【工作笔记】ElasticSearch
- 下一篇: 【MySQL性能优化】数据库设计三大范式