lock_number_of_rows_locked是一個統計一個事務中占有多少記錄鎖的函數,通過執行show engine innodb status觸發。
在我們的生産環境中,類似show engine innodb status這樣的語句是被頻繁執行的,而從perf top,也觀察到過占用超過20%的cpu。
傳回上一層的函數來看,這裡實際上是帶着全局大鎖lock_sys->mutex.僅僅為了一個計數,我們完全可以為每個事務增加一個計數器,然後在設定行鎖bit/reset 行鎖bit時 增加/減少計數.
昨天送出的buglist(http://bugs.mysql.com/bug.php?id=68647) ,包含patch