Linux

MySQL 執行緒或這是什麼

  • May 18, 2017

顯示 mysql 執行緒的頂部輸出

我怎樣才能減少這個數字?我有一台四核機器。我是否需要編輯 thread_pool_size 並通過減少它們來獲得更好的性能?

如果有很多查詢或發生的事情可能會阻塞機器嗎?

[mysqld]
default-storage-engine=MyISAM
local-infile=0
symbolic-links=0
max_connections = 500
max_user_connections = 25
key_buffer = 64M
myisam_sort_buffer_size = 32M
join_buffer_size = 2M
read_buffer_size = 2M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
table_cache = 1024
thread_cache_size = 16K
wait_timeout = 20
connect_timeout = 10
tmp_table_size = 128M
max_heap_table_size = 128M
max_allowed_packet = 160M
max_connect_errors = 10
query_cache_limit = 1M
query_cache_size = 16M
query_cache_type = 1
low_priority_updates=1
concurrent_insert=ALWAYS

[mysqld_safe]
open_files_limit = 8192

[mysqldump]
max_allowed_packet = 16M

[myisamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M

似乎您的索引已損壞,甚至可能 - 沒有索引的“慢”查詢。

請記住,max_connections盲目增加是非常危險的。每個執行緒都會佔用大量記憶體進行緩衝,並且很可能您的 RAM 會用完並導致大量分頁和減速而不是加速。

打開慢查詢日誌記錄:

SET @@global.log_slow_queries = 1;
SET @@global.log_queries_not_using_indexes = 1;

並檢查具有高價值的行Rows_examined:

引用自:https://serverfault.com/questions/444911