2010-11-17 64 views
0

是IN運算符是否適合將5000+項傳遞到正確索引的大表中?大表在運算符MySql

基本上我試圖獲得MP3列表,並檢查是否歌曲存在於我們的系統通過做一個簡單的名稱搜索。

(僞) 從IN(陣列MP3的名字)的MP3選擇名稱

回答

3

是快速

expr IN (value,...)

返回1如果expr等於任何在中值list,否則返回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以應付龐大的字符串