日期:2014-05-16  浏览次数:20667 次

mysql 索引列类型不同
前几天用python 脚本刷数据,遇见一个奇怪的问题:
运行第一遍一切正常,第二遍时长时间无反应,因为python本身不熟悉,开始以为是资源没有释放,调试了几次,排除了这个问题。

mysql show process,发现有一个sql查询长运行。并确定问题就是这个查询导致。
select a.* from a left join b on a.bid = b.uuid  

大约是这样了
EXPLAIN sql ,发现这个查询中索引没有起作用。我发现这两个索引列的类型不一致,一个是char
一个是varchar,google,baidu良久,没有找到答案.
感谢我的同事,帮我找到一个解决方案
select a.* from a left join b on cast(a.bid as char) = b.uuid  

问题解决,另外,发现有遍文章提到了这个点
http://database.51cto.com/art/200911/165561.htm