大表在运算符MySql中

时间:2010-11-17 06:18:01

标签: mysql

IN运算符是否适合将5000多个项目传递到正确索引的大表中?

基本上我试图获取一个Mp3列表,并通过简单的名称搜索来检查我们的系统中是否存在该歌曲。

(伪代码) 从mp3s IN(mp3名称数组)中选择名称

2 个答案:

答案 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)