如何對資料庫響應變慢進行優化

2021-07-22 03:30:43 字數 1526 閱讀 9959

1)show status(show session status like '%字串%')來檢視最近伺服器都在處理什麼內容,是以查詢還是以更新為主

得到資訊包括:

訪問最多的資料

執行的最多的查詢種類

停留時間最長的狀態

用來執行查詢使用的最頻繁的子系統

查詢過程中訪問的資料種類

執行了多少種不同型別的活動,比如索引掃瞄

2)根據explain執行檢視你本次執行的查詢語句的各個部分的特點

3)explain結果中字段的意義:

1,key列指出優化器使用的索引,一般來說sql查詢中每個表僅使用乙個索引,也錯在索引合併的少數例外

2,rows提供了試圖分析所有存在於累計結果集中航數目的mysql優化器的估計值,qep(查詢執行計畫)很容易描述這個很困難的統計量

3,possible_keys列出優化器為查詢選定的索引。乙個會列出大量可能索引的qep意味著備選索參數量太多,同時也可能存在無效的單列索引

4,key_len用於sql語句的連線條件的鍵的長度,此列值對於確認索引的有效性以及多列索引中用到的列的數目很重要

key_len: 4 // int not null

key_len: 5 // int null

key_len: 30 // char(30) not null

key_len: 32 // varchar(30) not null

key_len: 92 // varchar(30) null charset=utf8

是否可以為空、可變長度的列以及key_len 列的值只和用在連線和where 條件中的索引的列

有關。索引中的其他列會在order by 或者group by 語句中被用到

5,table是輸出結果中乙個單獨行的唯一識別符號,這個值可能是表名、表的別名或者為查詢產生的臨時表

6,select_type,列出了各種標識table列引用的使用方式型別,最常見的值包括******、primary、derived 和union

7, partitions 列代表給定表所使用的分割槽。這一列只會在explain

partitions 語句中出現。

8,extra 列提供了有關不同種類的mysql 優化器路徑的一系列

額外資訊。

9,type 列代表qep 中指定的表使用的連線方式

4)根據explain的結果,來確定是否需要對資料表進行索引建立修改刪除的操作,索引的使用:

1,如果mysql估計使用索引比全表掃瞄慢,則不適用索引,比如使用了《或者》操作

2,查詢條件中使用了函式或者索引欄位時表示式的一部分則不會使用索引

3,使用or分割條件,如果or前的條件中列有索引,後面的列中沒有索引,那麼涉及到的索引都不會使用

4,如果建立復合索引,如果條件中使用的列不是索引的第一部分(字首索引)

5,比較操作符like和regexp的搜尋模板的第乙個字元是萬用字元,如like的%like,則不會使用索引

6,對where後邊條件為字串的一定要加上引號,字串如果為數字,mysql會自動轉為字串,但是使用索引

如何對資料庫進行管理

管理控制台 對 rds 資料庫進行管理,幫助您深入了解 rds 的特性和功能。在雲資料庫rds版中,使用者可以通過建立資料庫和刪除資料庫,對資料庫進行合理的管理。下面將分別介紹如何在rds管理控制台上建立和刪除資料庫。建立資料庫 1.登入 rds 管理控制台 選擇目標例項。2.選擇選單中的 資料庫管...

對資料庫進行操作

對資料庫進行操作 一 ddl 資料庫定義語言 對資料庫 表結構進行操作 建庫 建表 修改表結構 刪庫 刪表等等 sql語句大小寫不敏感 1.建立資料庫 2.顯示所有的資料庫 3.切換到要使用的資料庫,use 資料庫名稱 4.4.刪除資料庫 drop database if exists 資料庫名 5...

如何使用jmeter運算元據庫,對資料庫進行壓測

第一步在 測試計畫 內配置jar包 及 新增執行緒組,新增執行緒組的目的是給接下來的壓測做準備,執行緒名稱可隨意更改 我更改為資料庫測試,接下來大家看到 資料庫測試 知道是執行緒組就好 第二步 新增 察看結果樹 用來檢視請求是否成功 傳送的請求和返回值,第三步 新增 jdbc connection ...