2012-07-24 51 views
5

我有一個需要很長時間的刪除查詢。當我登記processlist時,狀態顯示爲「關閉表格」。關閉桌子需要很長時間。MySQL狀態「關閉表」需要雙倍的進程時間

實施例:
我運行查詢和的總時間是1:42 秒並且在80-90秒是用於閉合表。

對於像load data,selectinsert這樣的所有查詢都會發生這種情況。

下面是的my.cnf設置:

key_buffer_size = 2G 
sort_buffer_size = 8M 
read_buffer_size = 10M 
read_rnd_buffer_size = 10M 
join_buffer_size = 2M 
bulk_insert_buffer_size = 100M 
myisam_sort_buffer_size = 64M 

#tmp_table_size = 100M 
#max_heap_table_size = 64M 
#max_allowed_packet = 64M 

table_cache=1024 


我meminfo中

[[email protected] ~]# free -m 
      total  used  free  shared buffers  cached 
Mem:   7862  6686  1175   0   11  4091 
-/+ buffers/cache:  2583  5278 
Swap:  15998   18  15980 


請告訴我,我需要在my.cnf中做什麼樣的變化文件?

+0

_請注意:_儘量避免在_StackExchange_網絡上發佈重複問題。據我可以看到你發佈了同樣的問題[這裏](https://dba.stackexchange.com/questions/21446/mysql-closing-tables-taking-double-the-time-of-process)。 – informatik01 2017-04-20 10:28:20

回答

0

關閉表

線程正在刷新已更改的表數據到磁盤a nd關閉使用的表格。這應該是一個快速的操作。如果沒有,你應該確認你沒有一個完整的磁盤,並且該磁盤沒有被用得很重。

有關更多詳細信息,請參閱General MySql Thread States

希望得到這個幫助!

+1

這個答案是[從這個答案複製](http:// dba。stackexchange.com/a/21461/78772) - 你至少可以引用它。 – 2016-10-12 00:40:01

+0

@ sankar-suda你也可以嘗試運行[Monyog](https://www.webyog.com/product/monyog)的試用版,並檢查它是否提供了一些見解。當我能找出某些東西時,通常有些工具可以幫助你。 – 2017-04-20 13:11:07

0

檢查這兩個變量的值,在這種情況下,這對提高mysql性能也很重要。

query_cache_size變量: - 查詢緩存刷新在每次插入,這將阻礙MySQL的性能,因爲它增加了開銷。檢查值是否過高並且以兆字節爲單位。

的innodb_flush_log_at_trx_commit: - 可以將其設置爲0(日誌文件被刷新到磁盤每秒),1(日誌文件被刷新到磁盤每提交)和2(日誌文件被刷新爲在每一個短的時間間隔秒)。