2011-12-16 4 views
0

Операторы, подготовленные SQLite, выглядят как хороший способ выполнения запросов по сравнению с необработанными операторами sql. Мне просто интересно, как долго их нужно держать.Ожидаемый жизненный цикл приложения SQLite SQLite

Безопасно ли статически компилировать оператор, т. Е. Только компилировать его один раз и продолжать использовать один и тот же оператор для многих запросов? Если это не потокобезопасно, то как насчет в потоке локального? С другой стороны, подготовленные заявления по-прежнему предпочтительны, если вы используете их только один раз?

ответ

1

Преимущества Подготовленные заявления являются:

  • Поскольку план выполнения кэшироваться, производительность будет лучше.

  • Это хороший способ кодирования SQL Injection, поскольку позволяет избежать ввода значений .

  • Когда дело доходит до выписки без несвязанных переменных, база данных бесплатна для оптимизации в полном объеме. Индивидуальный запрос будет быстрее, но нижняя сторона заключается в том, что вам нужно постоянно делать базу данных , и это хуже, чем преимущество быстрого запроса .

Для программирования на языке Java, посмотрите на Statement and PreparedStatement

+0

спасибо за ответ. Вы знаете, что SQLite также кэширует подготовленные операторы после компиляции? то есть, если я скомпилирую два оператора с одним и тем же SQL, он сможет повторно использовать первый скомпилированный оператор. Если есть кеш, вы знаете, когда он очищается, возможно, когда соединение с базой данных будет завершено ?. – bluphoenix

Смежные вопросы