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