古詩詞大全網 - 成語經典 - mysql中not in和not exists兩種查詢到底哪種快

mysql中not in和not exists兩種查詢到底哪種快

in和exists不論是大數據表還是小數據表,有可利用的索引還是無可利用的索引的情況下,它們的運行效率是差不多的,exists也許會稍微高壹點點,但是差別很小。

not exists在有可被利用索引的情況下效率很高,但是在大數據表的情況下如果沒有可被利用索引的情況下其運行效率很差。

not in 則在大數據表的情況下,不論有無可被利用的索引,其運行效率均極低,比無索引可用的not exists還要慢很多。

in和exists常用於求交集,它們的運行效率分別不大,可根據個人喜好選用。not in和not exists常用於求非交集,小數據表時可隨便用,但是碰到大數據表時就要小心了。not in不論有無可被利用的索引都會出現效率上的悲劇,應避免使用。not exists在有索引可用的情況下表現優異可作為獲取非交集的首選,然而在無索引可用時卻很慢,此時也應避免使用。