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的大小写都区别开,请问有没有更好的,效率更高的语句?
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的大小写都区别开,请问有没有更好的,效率更高的语句?
但是,如果直接是binary字段类型的,再加上索引的话,就可以了。
但有一个缺陷,就是,如果楼主想不区分大小写的时候,就又不能用索引了。
看实际需求吧。
实在不行,就建立一个 varchar类型的,再建一个binary类型的。具体用哪个看需求而定。一切楼主随意吧。