mysql
常用工具
1)show processlist
檢視正在執行的sql
2)show profile分析sql
先用select @@profiling檢視結果,結果為1,說明已經開啟。
show profiles 檢視sql耗時。
show profile for query queryid 檢視具體耗時的資訊
3)trace分析優化器的執行計畫
使用set optimizer_trace='enabled=on',end_markers_in_json=on; 語句開啟trace分析
檢視具體的優化器執行計畫:
select * from `information_schema`.optimizer_trace
4)利用工具查詢資料庫的讀寫比例
show global status like 'com_______' 這個sql可以檢視select、update、insert、delete都被執行了多少次
show global status like 'innodb_row_%' 除了檢視innodb的讀寫情況,還可以檢視鎖的情況。
查詢在什麼時候不走索引
主要三種情況
1)不滿足走索引的條件,常見的情況有
1.1)不滿足最左匹配原則
1.2)查詢條件使用了函式
1.3)or操作有乙個字段沒有索引
1.4)使用like條件以%開頭
2)走索引效率低於全表掃瞄,常見的情況有
2.1)查詢條件對null做判斷,而null的值很多
2.2)乙個字段區分度很小,比如性別、狀態
3)需要回表的查詢結果集過大,超過了配置的範圍
網上的58mysql軍規,適用於網際網路、大資料量的業務。
to be continued
mysql相關知識整理
mysql儲存引擎 分為innodb和myisam innodb 支援事物 外健 行級鎖 事物特性 原子性,一致性,隔離性,永續性 事物的隔離級別 未提交讀,已提交讀,可重複讀,髒讀 序列化 myisam 表級鎖 儲存最大行數 在建立表選擇儲存引擎讀多寫少偏向於使用myisam 寫操作頻繁選擇用in...
MySQL知識點整理
樂觀鎖介紹 樂觀鎖 optimistic locking 相對悲觀鎖而言,樂觀鎖假設認為資料一般情況下不會造成衝突,所以在資料進行提交更新的時候,才會正式對資料的衝突與否進行檢測,如果發現衝突了,則讓返回使用者錯誤的資訊,讓使用者決定如何去做。那麼我們如何實現樂觀鎖呢,一般來說有如下方式 使用資料版...
mysql知識點整理
為了備忘,就總結了一下 一 b樹和b 樹的區別 1.b樹根節點和葉子節點會存資料。2.而b 樹只有葉子節點會存資料,且所有葉子節點是鍊錶連線,獲取資料只需要直接從葉子節點的鍊錶中獲取,效率更高 二 樂觀鎖和悲觀鎖 1.樂觀鎖 樂觀鎖具體實現是由應用程式控制,通過比對版本號或者時間戳是否相同來判斷資料...