Какой тип таблиц используете?
Если InnoDB, то при частых обновления и вставках, в больших таблицах, вы всегда будете получать подобный результат. Самый простой способ в этом случае ускорить, перенести таблицу в MyISAM.
Второе, это подготавливайте инсерты пачками. Даже если в строку вы соберете более 100 записей и разом их запихнете, получится быстрее, чем каждый раз выполнять этот запрос.
И третье. Обновляйте по id, зачем же вы ищете, потом опять ищете для обновления по url. Строчку вы уже получили, можно так считать. Используйте сразу id. И вообще запрос упростите, пишите SELECT `id` FROM... Другие данные Вам не нужны. И ускорите получение и ускорите обновление.
Кстати. Четвертое. Если вы все равно всем записям меняете поле data на 1, можно так же обновление сделать пачкой. Собирайте id найденных записей и обновляйте через UPDATE `name` SET `data` = '1' WHERE `id` IN (1,2,5,7,88,123).