Nie jestem ekspertem, ale wierzę
$idListString = implode(",",$idList);
mysql_query("DELETE FROM this_table WHERE id IN ($idListString)");
jest szybszy. Powodem jest to, że tworzy tylko jedno zapytanie. Mniej danych jest wysyłanych na serwer i wszystkie są przetwarzane za jednym razem, w jednym poleceniu.
Ogólnie rzecz biorąc, w przypadku drugiej metody, jeśli masz, powiedzmy, 300 wartości, oznacza to, że wykonujesz 300 dodatkowych wywołań funkcji, 300 komunikacji z serwerem itd., chociaż w praktyce może się to różnić.
edytuj:Co więcej, zawsze powinieneś używać właściwego escapingu MySQL, nawet jeśli masz pewność, że dane nie są złośliwe. Zobacz http://php.net/manual/en/ function.mysql-real-escape-string.php i rozważ użycie mysqli lub PDO.