我在生产服务器上遇到此问题。应用程序栈是,MySQL查询运行速度极快,5000条记录表
- 的Java Web应用程序在Tomcat 6.0.18
- iBatis的数据访问层
- 的MySQL 5.0数据库
- CentOS的
该系统被部署具有虚拟服务器上大约256 MB的内存。
真正的问题:如果执行下面的查询
查询等,
select * from customer
在但是10秒左右执行,
select * from customer where code like '%a%'
执行上述查询之后,所述系统进入无限期处理并最终迫使Tomcat重新启动!
表统计: - 记录数:5000 - 主键:代码
同样的查询PHP MyAdmin围绕4秒执行。
您是否认为这可能是MySQL问题?任何想法来调试这个。我现在正在启用详细的日志,并会不断更新这个问题与我的研究结果,但会很感激你的数据分析的见解。
这是写在大胆的文本语句。可能是我使用了错误的MarkDown标签。让我解决这个问题 – jatanp 2009-12-21 05:37:33
我明白了。我修好了它。 – Asaph 2009-12-21 05:37:54
我不希望从客户那里选择*'%a%'这样的代码要快,因为它不可能使用索引。每个记录都必须检查。如果可能的话,考虑从客户那里选择*代码如'a%',因为那样可以使用索引。 – Asaph 2009-12-21 05:39:52