mysql資料庫優化

2021-08-22 04:26:38 字數 1745 閱讀 8890

#優化

mysql效能優化包括查詢優化、資料庫結構優化、 mysql伺服器優化等。mysql資料庫優化原則是減少系統的瓶頸和資源的占用,增加系統的響應速度。

可以使用 show status語句查詢mysql資料庫的效能引數:

show status like value
value是常用的效能引數值:

connections: 連線 mysql伺服器的次數

uptime: mysql伺服器的上線時間

slow_queries: 慢查詢的次數

com_select: 查詢操作的次數

com_insert: 插入操作的次數。

com_update: 更新操作的次數

com_delete: 刪除操作的次數

####1.優化查詢

######1.1 分析查詢語句

通過對查詢語句的分析,可以了解查詢語句的執**況。mysql中提供了 explain語句和 describe語句分析查詢語句。

具體用法:

######1.2 使用索引查詢

1).使like關鍵字的查詢語句

在使用like關鍵字進行查詢的語句中,如果匹配字串的第乙個字元為「%」,索引不會起作用。

例如:

發現like後條件的第一字元為「%」時,索引沒有生效,當第一字元不為"%"時:

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

mysql可以為多個字段建立索引。乙個索引可以包括16個字段。對於多列索引,遵循「最左字首」原則,查詢條件只有使用了組合索引中第1個字段時,索引才會被使用。

例如:

**3).**使用or關鍵字的查詢語句(myisam引擎可以, innodb引擎無效)

查詢條件中只有or關鍵字,並且or前後的兩個條件中的列都是索引時,查詢中才使用索引。

######1.3.子查詢優化

執行子查詢時, mysql需要為內層查詢語句的查詢結果建立乙個臨時表。然後外層查詢語句從臨時表中查詢記錄。查詢完畢後再刪除這些臨時表。mysql中,可以使用連線(join)查詢來替代子查詢。連線查詢不需要建立臨時表,其速度比子查詢要快,如果查詢中使用索引的話,效能會更好。

####2.資料庫結構優化

######2.1 表拆分優化

資料庫欄位較多的表,可以將使用頻率很低的字段分離出來建立新錶。

######2.2 增加中間表

經常需要聯合查詢的表,可以建立中間表用來提高查詢效率。

######2.3 增加冗餘字段

資料庫表設計時盡量遵循正規化理論的規約,盡可能減少冗餘字段,讓資料庫設計看起來精緻、優雅。但是,合理地加入冗餘字段可以提高查詢速度。

問題:冗餘欄位的值在乙個表中被修改了,就要想辦法在其他表中進行同步。否則就會使原本一致的資料變得不一致。為了提高查詢速度而增加少量的冗餘大部分時候是可以接受的。是否通過増加冗餘來提高資料庫效能,這要根據實際需求綜合分析。

mysql資料庫優化索引 mysql資料庫索引調優

一 mysql索引 1 磁碟檔案結構 innodb引擎 frm格式檔案儲存表結構,ibd格式檔案儲存索引和資料。myisam引擎 frm格式檔案儲存表結構,myi格式檔案儲存索引,myd格式檔案儲存資料 2 mysql資料庫資料範問原理 innodb btree 1 ibd檔案中主鍵構建b tree...

mysql資料庫優先 MySQL資料庫優化

1.新增索引 mysql資料庫的四類索引 index 普通索引,資料可以重複,沒有任何限制。unique 唯一索引,要求索引列的值必須唯一,但允許有空值 如果是組合索引,那麼列值的組合必須唯一。primary key 主鍵索引,是一種特殊的唯一索引,乙個表只能有乙個主鍵,不允許有空值,一般是在建立表...

mysql資料庫優化

用到啥學啥,mysql資料庫優化成了這幾天的老大難問題。瘋狂的尋找mysql優化的資料,覺得有用的不少,記錄下跟大家分享,對了,這裡僅僅是mysql資料庫本身的優化,沒有寫磁碟之類的 開始之前,介紹倆mysql的命令 show global status 檢視執行狀態的,顯示執行各種狀態值 show...