请大虾分析binary查询效率问题

snow_oracle 2007-07-27 07:11:47
usera表有数据大概20万条,count表大概有50万条.
useranme都有索引.

现在要执行一条update语句:

UPDATE usera,count SET usera.Age = count.Ct WHERE usera.username = count.username;

大概20秒左右可执行完成.

但是当执行下边语句时,

UPDATE usera,count SET usera.Age = count.Ct WHERE binary usera.username = binary count.username;

执行了半个小时都还没有完成.

请大虾帮助分析一下,为什么加了binary,在执行效率上有如此大的区别?

第一条不能区别大小写,现在想把username的大小写都区别开,请问有没有更好的,效率更高的语句?

...全文
339 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
whalefish2001 2007-07-31
  • 打赏
  • 举报
回复
因为 varchar类型的字段 要转换为 binary字段类型的,同时放弃索引的使用。
但是,如果直接是binary字段类型的,再加上索引的话,就可以了。
但有一个缺陷,就是,如果楼主想不区分大小写的时候,就又不能用索引了。
看实际需求吧。
实在不行,就建立一个 varchar类型的,再建一个binary类型的。具体用哪个看需求而定。

一切楼主随意吧。
whalefish2001 2007-07-31
  • 打赏
  • 举报
回复
是啊,加了 binary后 索引失效。能否把 username 字段直接改为 binary 类型的呢?而不是varchar类型的。
snow_oracle 2007-07-30
  • 打赏
  • 举报
回复
有没有办法改进这个查询呢?
这个问题还没有解决...
懒得去死 2007-07-30
  • 打赏
  • 举报
回复
加了 binary后,username 的索引就失效了。
trainee 2007-07-28
  • 打赏
  • 举报
回复
因为用不了索引

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧