mysql效能優化

2022-06-25 16:42:14 字數 3059 閱讀 3603

導致資料庫伺服器處理速度慢的原因有哪些?

1.伺服器硬體配置低

uptime             負載

iostat \ 

df -h            磁碟狀態

free -h          記憶體狀態

2.伺服器執行引數配置不合理

檢視所有變數:

show variables [like "%binlog%"];

檢視狀態:

show global status [like "%innodb%"];

重新整理狀態資訊:

flush status;

1》max_connections:允許最大的併發連線數

修改:

1.

set global max_connections=值;

2.echo

max_connections=值 >>

/etc/my.cnf

檢視:

show variables like 「max_connections」;

注意:

曾經併發數/設定的併發連線數=0.85

2》connect_timeout:連線超時時間(預設10秒)

3》wait_timeout:關閉資料庫連線的不活動超時時間(預設8小時)

4》key_buffer_size:用於myisam引擎的關鍵索引快取大小(預設8m)

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

6》read_buffer_size:為順序讀取表記錄保留的快取大小

7》thread_cache_size:允許儲存在快取中被重用的執行緒數量(預設9)

8》table_open_cache:為所有執行緒快取的開啟表的數量(預設2000)

sql查詢優化:

查詢日誌:記錄客戶端連線和查詢操作(root+授權使用者)

general_log                          ------------->重啟mysqld服務                                   -----》預設在/var/lib/mysql/主機名.log

general_log_file=自定義日誌路徑                          //若自定義目錄,則目錄歸屬許可權為mysql.mysql

慢查詢日誌:記錄耗時較長或不使用索引的查詢操作

slow_query_log                  //啟用慢查詢日誌

slow_query_log_file=自定義慢查詢日誌的儲存路徑             預設在/var/lib/mysql

log_query_time=數值                                     //超多少秒加入日誌(預設10秒)

log_queries_not_using_indexes                                 //不使用索引的加入日誌

--------------------------------------》重啟mysqld服務                          ----》生成/var/lib/mysql/主機名-slow.log

統計慢查詢日誌到檔案中:

mysqldumpslow/var/lib/mysql/主機名-slow.log    >  檔名

檢視快取的大小:

show variables like "query_cache%";

query_cache_size                         //檢視快取大小

query_cache_type             //檢視快取是否開啟

檢視當前的查詢快取統計:

show global status like "qcache%";

qcache_hits:在查詢快取裡面查詢到的資料次數

步驟:

公升級伺服器硬體

加大網路頻寬

調整mysql服務執行引數

調整與查詢相關的引數

啟用慢查詢日誌

網路架構不合理

mysql效能優化 mysql效能優化

優化方式 1.空間換時間 冗餘 2.時間換空間 字段優先使用型別 int date char varchar text 索引型別 btree索引 hash索引 索引的葉子下,存放乙個資訊指向所在行的資料位址。btree有利於範圍查詢,hash有利於精確查詢。btree用的更多一些。btree索引的常...

mysql的效能優化 mysql效能優化

檢視安裝指令碼 select version 非互動式超時時間,如jdbc show global variables like wait timeout 互動式超時時間,如資料庫工具 show global variables like interactive timeout show sessi...

mysql 效能優化 命令 mysql效能優化

發現問題 當發現程式執行比較慢的時候,首先排除物力資源問題之後,就將注意力轉向mysq資料庫 1 首先確定執行慢的sql語句 mysql show full processlist 2 確認低效的查詢 多次執行第一步發現time耗費大的sql語句。檢視耗費的時間。3 分析效能 為sql生成乙個執行計...