IN运算符是否适合将5000多个项目传递到正确索引的大表中?
基本上我试图获取一个Mp3列表,并通过简单的名称搜索来检查我们的系统中是否存在该歌曲。
(伪代码) 从mp3s IN(mp3名称数组)中选择名称
答案 0 :(得分:3)
快速
expr IN (value,...)
如果expr等于IN列表中的任何值,则返回1,否则返回0.如果所有值都是常量,则根据expr的类型计算它们并进行排序。然后使用二分搜索完成对项目的搜索。这意味着如果IN值列表完全由常量组成,则IN非常快。否则,类型转换将根据第11.2节“表达式评估中的类型转换”中所述的规则进行,但应用于所有参数。
参考:http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_in 参考:http://dev.mysql.com/doc/refman/5.0/en/type-conversion.html
对于您的情况,请检查您的max_allowed_packet
以迎合巨大的字符串
答案 1 :(得分:0)