Всем привет! 
Есть класс удаления данных из БД. суть такая (удаляем комментарий):
Оговорюсь: удаление происходит как правило по id или комбинации id, mode_id - индексы присутствуют и все происходит быстро. Но в итоге получается около нескольких сотен запросов нормально ли это?
public function delComments($id){		
	// удаляем лайки к комментариям
	$this->db->squery("DELETE FROM `likes_comm` WHERE `comm_id` = {$id}");
	// удаляем события связанные с этим комментарием
	$this->delFeedEvents('comments', $id);
		// проверяем наличие дочерних комментариев в дереве
		$res = $this->db->squery("SELECT `id` FROM `comments` WHERE `parent_id` = {$id}");
		while($row = $res->fetch_assoc()){
                        // рекурсия по каждому найденному комментарию 
			$this->delComments($row['id']);
		}
                // проверяем наличие изображений в комментарии
		$res = $this->db->squery("SELECT `id` FROM `images` WHERE `mode` = 'comments' AND `mode_id` = {$id}");
		while($row = $res->fetch_assoc()){
                       // рекурсия по каждому найденному изображению
                       // нужна для того, что в каждом изображении могут быть свои комментарии, лайки и т.д. (разве что там уже нельзя опубликовать картинку) и там выходит похожий метод как и этот с комментариями.
			$this->delImages($row['id']);
		}
		
		// удаляем сам коммент
		$this->db->squery("DELETE FROM `comments` WHERE `id` = {$id}");
	}
Вопрос. На сколько сложно для БД выполнение таких (простых на мой взгляд) запросов в таком количестве (200+)?
Есть ли какой-то способ вместо рекурсии, который также пройдется по каждой сущности и удалит данные из базы, но сохранив такое количество запросов?
Позже я изменю свой способ на удаление через триггеры... буду в каждом методе этого класса создавать триггер, удалять данные, а потом удалять триггер (мне так проще контролировать эти связи). Но сейчас я хочу найти способ оптимизации моих запросов именно через php.