Кэширование запросов в SQLx и DBI имеет свои особенности.
В SQLx кэширование работает через разделение запросов на подготовленные (параметризованные) и неподготовленные (простые). 1 Подготовленные запросы кэшируют свой план запроса, используют двоичный режим связи и параметры, позволяющие избежать внедрения SQL. 1 Неподготовленные запросы просты и предназначены для использования там, где подготовленная инструкция не будет работать, например, в различных командах базы данных. 1 SQLx поддерживает все операции с обоими типами запросов. 1
В DBI кэширование работает через метод connectcached, который хранит дескриптор базы данных в хэше с указанными параметрами. 2 Если делается повторный вызов connectcached с теми же значениями параметров, то возвращается соответствующий дескриптор из кэша, если он ещё годен к употреблению. 2 Кэшированный дескриптор базы данных заменяется новым соединением, если произошло отсоединение или выполнение метода ping оказалось неудачным. 2
Таким образом, в SQLx кэширование запросов основано на разделении запросов на подготовленные и неподготовленные, а в DBI — на использовании метода connect_cached для хранения дескриптора базы данных в кэше. 12