MySQL SELECT NOT IN 从 30K 行快速

MySQL SELECT NOT IN from 30K rows fast

我的数据库 table name_info 有 30K 行和术语 table 60K 行,当 select 不在 table 中时,服务器 CPU 上升。

我怎样才能最好地编写 select 1 行快的查询?

SELECT slug FROM terms WHERE slug LIKE 'nm%' AND slug NOT IN 
(SELECT imdb_id FROM name_info) LIMIT 1

确保查询中使用的列已编入索引。

SELECT `slug`
FROM `terms` 
LEFT JOIN `name_info`
ON `slug` = `imdb_id`
WHERE slug LIKE 'nm%' 
AND `imdb_id` IS NULL
LIMIT 0,1;

尝试使用不存在

SELECT slug FROM terms WHERE slug LIKE 'nm%' AND not exists
(SELECT 1 FROM name_info where imdb_id = slug) LIMIT 1