Mysql 效能查詢

2022-02-25 18:10:17 字數 995 閱讀 6562

mysql鎖占用後,表無法操作,解決辦法

原因: 未提交事物,阻塞ddl,繼而阻塞所有同表的後續操作

通過 select * frominformation_schema.innodb_trx\g, 找到未提交事物的sid, 然後 kill 掉,讓其回滾。

mysql查詢當前鎖狀況: 

-- 檢視mysql 事務處理列表

select * from information_schema.innodb_trx  

innodb_trx ## 當前執行的所有事務 

innodb_locks ## 當前出現的鎖 

innodb_lock_waits ## 鎖等待的對應關係

-- 檢視 所有mysql 程序id

show full processlist;

各個列的含義:

①.id列,使用者登入mysql時,系統分配的"connection_id",可以使用函式connection_id()檢視

②.user列,顯示當前使用者。如果不是root,這個命令就只顯示使用者許可權範圍的sql語句

③.host列,顯示這個語句是從哪個ip的哪個埠上發的,可以用來跟蹤出現問題語句的使用者

④.db列,顯示這個程序目前連線的是哪個資料庫

⑤.command列,顯示當前連線的執行的命令,一般取值為休眠(sleep),查詢(query),連線(connect)等

⑥.time列,顯示這個狀態持續的時間,單位是秒

⑦.state列,顯示使用當前連線的sql語句的狀態,很重要的列。state描述的是語句執行中的某乙個狀態。乙個sql語句,以查詢為例,可能需要經過copying to tmp table、sorting result、sending data等狀態才可以完成

⑧.info列,顯示這個sql語句,是判斷問題語句的乙個重要依據

### kill 掉 指定的第一列執行緒id

mysql>kill thread_id;

mysql查詢效能優化 MySQL 查詢效能優化

在日常開發中,程式設計師寫的最多的除了bug之外,應該算是sql語句了。sql的質量影響了程式的響應速度,只有利用mysql的特性,才能讓mysql更有效的執行查詢sql,充分發揮mysql的優勢,並避開它的弱點。為什麼查詢速度會慢?在編寫sql之前,需要清楚一點 真正重要的是響應時間。如果我們把查...

mysql子查詢效能 MySQL子查詢效能

1 語法 子查詢有in和exists兩種,哪種速度更快呢?主要取決於兩張表的大小關係。select from a where cc in select cc from b select from a where exists select cc from b where b.cc a.cc in會先...

mysql查詢效能

業務效能測試中,如果乙個查詢介面,譬如根據使用者id去查詢乙個使用者的詳細資訊,jmeter指令碼中是否需要將使用者id進行變數化,系統中不涉及redis之類的快取 使用者資訊都是從資料庫直接查詢的 如果jmeter指令碼中將使用者id寫死,就併發查詢同乙個使用者的資訊,吞吐量會不會有什麼不同 使用...