Count records in a related table
This one might work better:

SELECT
*
FROM
items AS i
INNER JOIN (SELECT id_item, COUNT(*) AS count_subs FROM subscriptions GROUP BY id_item) counts
      ON i.id = counts.id_item
WHERE
....


Post the result of the query with EXPLAIN keyword in front of SELECT. Then we can see, if and how indexes are used.