您好,匿名用户
随意问技术百科期待您的加入

在windows下mysql的变量不能作为条件使用索引?

0 投票

set @a='test';
explain select * from tabl1 where col1=@a;
ubuntu下可以提示使用索引
但在windows server 2008下
就没有提示使用索引。
另外在存储过程中,在ubuntu下可以跑得sql代码,到windows下很慢,查看是不使用索引的缘故。
在存储过程中有
insert into table2 select * from table1 where col1=_var;
对于这个_var变量,在windows并不使用索引。

----------------20110829 14:30--------------------------------------
早上把mysql服务重启了一下然后
set @a='test';
explain select * from tabl1 where col1=@a 不使用的索引的情况没了。

但是在存储过程中

declare _area varchar(10);
set _aera='area_test';
explain select * from temp_cell a where a.area=_area;

还是不使用索引。

然后我就改用

set _stat=CONCAT('explain select * from temp_cell a where a.area=\'',_area,'\''); 
PREPARE STMT FROM _stat;
EXECUTE STMT;
DEALLOCATE PREPARE STMT;

把任务给跑了~

刚才尝试着还原昨天晚上的情况,mmd,又没问题了。。。捣鼓了半天。
真不知道是怎么回事。

用户头像 提问 2012年 12月1日 @ Aries 上等兵 (238 威望)
分享到:

你的回答

隐私保护: 您的邮箱仅用于发送系统通知。
请输入验证码:
    图片验证码看不清?
登录注册后不会被要求输入验证码。

提一个问题:

相关问题

0 投票
0 回复 13 阅读
用户头像 提问 2013年 11月15日 @ Lucian 列兵 (86 威望)
0 投票
1 回复 34 阅读
用户头像 提问 2012年 12月1日 @ Tryndamere 上等兵 (325 威望)
0 投票
1 回复 45 阅读
0 投票
0 回复 7 阅读
用户头像 提问 2014年 3月19日 @ Morgana 上等兵 (251 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...