原创 optimizer特性之derived_merge

文章目錄MySQL optimizer特性之derived_merge1. 什麼是derived table ?2. 什麼是derived_merge ?3. derived_merge開啓和關閉的區別4. 無法利用derived_m

原创 MySQL查詢優化器源碼分析-1

文章目錄MySQL查詢優化器源碼分析handle_query(THD*,LEX*,Query_result*,unsignedlonglong,unsignedlonglong)st_select_lex

原创 clion在調試時在代碼處自動顯示變量值

clion在調試時自動顯示變量的值 不知道動了哪裏,導致調試時無法在相應的代碼位置顯示變量的值,如下紅框處沒有顯示任何信息,之前默認會顯示參數的值。 可以通過左下角的設置按鈕,勾選show values inline,就會顯示了,效

原创 MySQL事務提交流程(2pc)時序圖

文章目錄MySQL事務提交流程時序圖一、簡化版的事務處理時序圖時序圖說明二、流程簡介用戶下發begin操作用戶進行dml操作用戶下發commit MySQL事務提交流程時序圖 網上的資料有點亂,所以特畫此圖,從上帝視角,來看事務操作的

原创 Innodb死鎖日誌分段解讀-如何閱讀死鎖日誌

死鎖分析是DBA日常工作之一,一般死鎖分析的步驟如下 閱讀死鎖日誌 查看錶機構,甚至不需要 定位事務場景,進行分析 而正確的理解死鎖日誌,是進行死鎖分析的重點,下面就是對死鎖日誌的分段解讀。 一般的死鎖日誌如下 ---------

原创 如何查看當前Innodb的併發

文章目錄如何查看當前Innodb的併發線程數? 如何查看當前Innodb的併發線程數? 在MySQL中: 用Threads_connected表示當前數據庫server層的鏈接數,對應參數max_connections; 使用

原创 SQL優化的範疇

文章目錄1. 什麼是SQL優化?1.1 數據庫內部自優化-optimizer1.2 外界人爲干預的優化2. 外界優化的方法論2.1 對於給定的數據庫實例的SQL語句,通過增加索引提高SQL執行效率2.2 對於給定的數據庫實例的SQL語

原创 小米SQL優化組件soar使用示例

文章目錄初識-having轉where再探-MySQL選擇錯誤索引的問題汗顏-無索引場景 這行內容是後補的,因爲筆記做到最後,發現這個不是使用用例,而是吐槽。。當然我們不能以偏概全,soar還能進行SQL指紋、壓縮、美化、合併呢!

原创 mysql中的select @@version

有些朋友問過的問題,mysql中查詢版本號,有的是5.7.18,有的是 5.7.18-log ,有的是5.7.18-debug,如下 mysql> select @@version; +------------------+ | @@

原创 perf+FlameGraph火焰圖

在軟件測試運行過程中,如果發現了一些性能問題,但是卻無從下手的情況,可以通過perf+FlameGraph生成程序運行期間的火焰圖,來定位耗時比較高的函數。使用命令如下 perf抓取數據 sudo perf record -F 100

原创 MySQL數據庫鏈接無法kill的問題分析

這應該是17年的問題了,博客中分享下 文章目錄問題描述什麼是kill?MySQL kill操作的原理爲什麼kill不掉?數據庫堆棧信息關於kill操作的改進措施 問題描述 由於業務sql慢查詢,急需要kill鏈接,添加索引來解決問題。

原创 MySQL max_execution_time參數原理解析

MySQL max_execution_time參數解析 一、參數解釋說明 參數max_execution_time用來控制select語句的最大執行時間,單位是毫秒,可以動態修改,分爲session和global兩種級別,如果設置爲

原创 MySQL recycle_bin性能測試

recycle_bin以插件的方式工作mysqld中,主要利用了slave讀取binlog event後會主動調用hook的原理,此時,recycle_bin可以在sql回放線程回放master操作前進行相關的操作。 因爲涉及到對整個

原创 MySQL-Plugin-Recycle-Bin簡介

MySQL-Plugin-Recycle-Bin簡介 一、簡介 recycle_bin是一款MySQL插件,可以在不修改任何MySQL代碼的情況下,自動備份MySQL中被Drop的表,在出現人爲誤操作刪表時,可以快速的進行恢復, 實現

原创 MySQL中的委託回調機制

MySQL的插件功能通過委託回調機制來實現。 拿Binlog_relay_IO_delegate(委託者的一種)來講,它有很多委託方法,比如說after_read_event,是在讀取一個binlog event之後進行回調,MySQ