mysql-效能優化(sql執行計劃explain)
阿新 • • 發佈:2021-10-28
影響mysql效能的因素:
1、是商業需求對效能的影響。就是有時候可以去避免的,但是在設計的時候沒有考慮到。如:統計發帖子總量,要求實時更新
可以隔一段時間更新一次,不實時更新,這樣效能會提升很多。
2、存放圖片和視訊放到資料庫中去還是放到磁碟上去?
正常如在orcle資料庫中可以設定個大資料型別就是block型別,。Orcle資料中表存放資料沒限制。受制硬碟空間大小。
3、是否開啟cache:如果資料更新的很頻繁,開啟cache意義就不大了。
做效能測試有個預熱測試:應該考慮快取,做效能測試之前先跑一段時間,做個預熱,目的就是為了把磁碟中的快取儘可能加滿。
4、表的設計、硬體(磁碟io)
5、鎖 有鎖就會有阻塞。任何資料庫都有鎖。
死鎖發生的時候資料庫會自動去處理掉的。他會記錄下來。
6、mysql資料庫query的優化
開發同步給出sql的執行計劃,就是自測的時候給出。
慢查詢,如規定超過1s的都屬於慢查詢。
Sql非常容易出現問題
多索引。如果建了索引,只要插入一條資料,索引就要重新來。所以建了索引會影響增刪改的效能。Where後面跟的欄位,一般會建索引。
從explan入手:這是一個執行計劃的命令
連上MySQL。分析這個sql的執行計劃,如下圖。explain select * from t1;
也可以下面這樣,讓他立著顯示。這就是一個執行計劃
下面做一件事,建兩張表,分別插入記錄,通過id號做一下關聯。然後看下他的執行計劃。
進入mysql
create database db01;
drop database db01;
當發現一個sql有問題的時候,可以定一個優化目標,比如消耗資源多少在可接受範圍之內等,目標定完後,就可以入手去分析了。比如說,從Explain入手
ID越大越先被執行到。