mysql效能調優 會話數 MySQL效能調優

2021-10-22 07:47:27 字數 2261 閱讀 3071

mysql效能調優

提高mysql系統的效能、影響速度

-替換硬體(cpu/磁碟/記憶體等)

-服務程式的執行引數調整

-對sql查詢進行優化

併發及連線控制

-連線數、連線超時

max_connections //允許的最大併發連線數

connect_timeout //等待建立連線的超時秒數,預設10秒,只在登入時有效

wait_timeout //等待關閉連線的不活動超時秒數,預設28800秒(8小時)

-產看當前已使用的連線數

mysql>flush status;

mysql>show globale status like "max_used_connections";

-檢視預設的最大連線數

mysql>show variables like "max_connections";

-快取引數控制

快取區、執行緒數量、開表數量

key_buffer_size //用於myisam引擎的關鍵索引快取大小

sort_buffer_size //為每個要排序的執行緒分配此大小的快取空間

read_buffer_size //為順序讀取表記錄保留的快取大小

read_rnd_buffer_size //為按排序結果讀取表記錄保留的快取大小

thread_cache_size //允許儲存在快取中被重用的執行緒數量

table_open_cache //為所有執行緒快取的開啟的表的數量

key_buffer_size=8m

當key_reads/key_read_requests較低時可適當加大此快取值

mysql>show global status like "key_read%";

mysql>show variables like "key_buffer_size";

sort_buffer_size=256k

增大此值可提高order和group的速度

mysql>show variables like "sort_buffer_size";

檢視表記錄讀取快取

-此快取值影響sql查詢的響應速度

mysql>show variables like "read_%_size";

檢視可重用執行緒

mysql>show variables like "thread_%_size";

檢視當前的執行緒重用狀態

mysql>show global status like "threads_%";

檢視已開啟、開啟過多少個表

mysql>show global status like "open%tables";

檢視可快取多少個開啟的表

mysql>show variables like "table_open_cache";

sql查詢優化

mysql日誌型別,常用日誌種類及選項:

錯誤日誌 log_error[=name] //記錄啟用/執行/停止過程的錯誤訊息

查詢日誌 general_log,general_log_file= //記錄客戶端連線和查詢操作

慢查詢日誌 slow_query_log,slow_query_log_file=,long_query_time= //記錄耗時較長或不使用索引的查詢操作

記錄慢查詢:

slow-query-log //啟用慢查詢

slow-query-log-file //指定慢查詢日誌檔案

long-query-time //超過指定秒數(預設10秒)的查詢才被記錄

log-queries-not-using-indexes //記錄未使用索引的查詢

調整服務配置:

vim /etc/my.cnf

[mysqld]

slow_query_log=1

slow_query_log_file=mysql-slow.log

long_query_time=5

log_queries_not_using_indexes=1

systemctl restart mysqld

檢視慢查詢日誌,使用mysqldumpslow工具

mysqldumpslow /var/lib/mysql/mysql-slow.log

檢視快取的大小

mysql>show variables like "query_cache%";

檢視當前的查詢快取統計

mysql>show global status like "qcache%";

mysql效能調優

1.對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在 where 及 order by 涉及的列上建立索引。2.應盡量避免在where子句中對字段進行null判斷,否則會導致引擎放棄使用索引而進行全表掃瞄。3.應盡量避免在where子句中使用 或 操作符,否則會導致引擎放棄使用索引而進行全表掃瞄。4...

Mysql效能調優

mysql 效能調優有很多方面,主要是這幾個方面 1 正規化 是指表的列具有原子性,不可再拆分,只要資料庫是線性的,都自動滿足1nf。2 正規化 表中的紀錄是唯一的。3 正規化 表中資料不應該有冗餘,如果通過某個欄位就能得到跟該字段相關的資訊,就沒必要將這些資訊,再存放到該表中。在3nf中,可能會對...

MySQL效能調優

1 經常用來讀的表使用myisam儲存引擎 2 其餘的表都用innodb儲存引擎 1 在select where order by常涉及到的字段上建立索引 2 where子句中不使用 否則將放棄使用索引進行全表掃瞄 3 盡量避免用null值判斷,否則會全表掃瞄 示例 select id from t...