Sayangnya, MySQL tidak terlalu baik dalam mengoptimalkan subquery dengan IN. Ini dari dokumentasi MySQL :
Coba gunakan JOIN sebagai gantinya.
Karena MySQL bekerja dari dalam ke luar, terkadang Anda dapat mengelabui MySQL dengan membungkus subquery di dalam subquery lain seperti:
SELECT COUNT(*) FROM table_name WHERE device_id IN
(SELECT * FROM (SELECT DISTINCT device_id FROM table_name WHERE NAME = 'SOME_PARA') tmp)
Inilah solusi GABUNG:
SELECT COUNT(DISTINCT t2.id) FROM table_name t1
JOIN table_name t2
ON t2.device_id = t1.device_id
WHERE t1.NAME = 'SOME_PARA'
Perhatikan bahwa saya mulai dari dalam dan keluar juga.