Есть ли смысл сохранять подготовленные отчеты PDO для повторного использования в сеансе?
Я создаю сайт, который использует MySQL полнотекстовые запросы, которые я собираю в своем PHP, например
SELECT * FROM table WHERE MATCH (title) AGAINST ($search_string IN BOOLEAN MODE) AND MATCH (keywords) AGAINST ($keywords IN BOOLEAN MODE) ORDER BY $order_by $asc_desc
По-видимому, для запуска такого рода запросов требуется намного больше времени, когда я готовлю и выполняю его с привязанными параметрами, чем когда я просто готовлю и выполняю строку запроса с включенными значениями. Но мне нужно использовать подготовленные инструкции, чтобы предотвратить риск внедрения SQL.
В любом сеансе я, скорее всего, запускаю один и тот же запрос несколько раз с разными значениями параметров. Будет ли иметь смысл сохранить объект PDOStatement после его создания (например, в сеансе)? Если да, то какой был бы лучший способ сделать это? Будет ли хорошей практикой сохранять каждый подготовленный оператор в ассоциативном массиве по мере его создания, причем строка запроса SQL является ключом для каждого?
При дальнейшем чтении я обнаружил, что вы не можете использовать связанные параметры для ORDER BY и ASC / DESC часть инструкции. Когда я заменяю их на фиксированные значения, производительность улучшается.