Mysql 5.1 InnoDB freeing item 死锁 BUG

前两天运行shell跑一个统计,通过观察processlist会发现mysql客户端进程会每一分钟就增长一个,而且迟迟不会终止,进程状态多为freeing item,后来网上查下,这是mysql的bug,bug造成至今不是非常清楚,好像是mysql内部query cache造成的,现在解决方案,我将数据库表改为MyIsam存储引擎,问题没有再重现。

我是这样分析的,mysql批量执行sql语句时也是多线程在操作,我现在客户端设置的线程池大小为20,当请求来了,mysql会自动分配一个可用线程去响应请求,这时遭遇了这个bug后,相应的表被锁住,其他的线程也无法操作,所以会造成死锁现象。

ps:这种现象貌似只是5.1版本的InnoDB存储引擎会出现,5.4以后该bug已经被解决。

你可能感兴趣的:(多线程,sql,mysql,框架,cache)