MySQL передача массива в хранимые процедуры через prepared statements

Sergey_Al

Новичок
Я выбрал вариант передачи массива в хранимую процедуру через строку вида '1,2,3,4,5'
После этого делаю PREPARE & EXECUTE.

Т.е. выглядит это как-то так:

PHP:
  SET @t = CONCAT(
    "SELECT
	...
	  FROM 
		  tbl 
        ...
	  WHERE id IN (", ids, ")
	  ORDER BY FIELD(id, ", ids, ")"
  );

  PREPARE stmt1 FROM @t;
  EXECUTE stmt1;
Вопрос в следующем: мешает ли это mysql оптимизировать запрос? Может стоить переделать через временную таблицу или разница будет всё равно почти не заметна?

Как я понимаю, mysql заранее компилирует хранимые процедуры и потому их выполнение быстрее, но тут есть prepare, который скорее всего будет уже компилироваться после вызова.
 
Сверху