数据库的运行速度很慢。
用SHOW processlist来看了下它的连接情况,发现就算语句是select、insert这样的,struts仍然显示locked。
第一次用mysql,照理说这样应该是不锁表的啊,为什么会显示locked?
还有,这个locked,是行级锁还是表级锁啊?谢谢诸位大拿。用show struts来查看mysql的状况,除去那些为0的参数,剩下的如下有哪儿可以做优化呢?Aborted_clients 16
Bytes_received 706
Bytes_sent 28208
Com_set_option 4
Com_show_databases 1
Com_show_processlist 19
Com_show_status 2
Com_show_variables 1
Compression OFF
Connections 44259
Created_tmp_files 17221
Created_tmp_tables 4
Flush_commands 1
Handler_read_rnd_next 261
Handler_write 390
Innodb_buffer_pool_pages_data 64
Innodb_buffer_pool_pages_free 1984
Innodb_buffer_pool_pages_total 2048
Innodb_buffer_pool_read_ahead_rnd 1
Innodb_buffer_pool_read_requests 320
Innodb_buffer_pool_reads 13
Innodb_data_fsyncs 3
Innodb_data_read 3231744
Innodb_data_reads 74
Innodb_data_writes 3
Innodb_data_written 1536
Innodb_log_writes 1
Innodb_os_log_fsyncs 3
Innodb_os_log_written 512
Innodb_page_size 16384
Innodb_pages_read 64
Key_blocks_unused 10590
Key_blocks_used 4262
Key_read_requests 95374528
Key_reads 83870
Key_write_requests 24881
Key_writes 18930
Last_query_cost 10.499
Max_used_connections 32
Open_files 24
Open_tables 18
Qcache_free_blocks 1568
Qcache_free_memory 11651136
Qcache_hits 310761
Qcache_inserts 133160
Qcache_lowmem_prunes 4209
Qcache_not_cached 29571
Qcache_queries_in_cache 18419
Qcache_total_blocks 38656
Questions 628419
Rpl_status NULL
Select_scan 4
Slave_running OFF
Ssl_session_cache_mode NONE
Table_locks_immediate 156256
Table_locks_waited 20685
Threads_cached 24
Threads_connected 8
Threads_created 32
Threads_running 4
Uptime 877167
Uptime_since_flush_status 877167

解决方案 »

  1.   

    先kill掉  然后开慢查询 set global slow_query_log=on
      

  2.   

    我想问下
    照道理说,select语句是不会锁表的啊
    为什么mysql的select语句,如果是慢查询,会把表给locked我也想加快sql的查询速度,但是看了下,索引,语句优化什么的都做了的。有没有办法让慢查询不锁表啊。。谢谢
      

  3.   

    select操作会添加共享锁,在这期间不能进行数据更改操作。