Запрос БД: параметризованные значения или добавленные значения?

0

Я хотел бы знать, какой из них лучше подходит для обеспечения производительности и безопасности. Я использую MySql DB, а значения имеют тип varchar.

Должен ли я напрямую конкатенировать значения, чтобы сформировать строку запроса и выполнить запрос? (или) Должен ли я использовать параметризованные запросы?

заранее спасибо

Теги:
database

3 ответа

1
Лучший ответ

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

Что касается производительности, в создании и выполнении инструкции возникнут некоторые накладные расходы, но я бы сказал, что штраф за использование оператора над необработанной строкой довольно мал. Большей проблемой для вашей производительности, вероятно, будет сам запрос, и как вы настроили свою схему.

Итак, мой голос за использование заявления, в предположении, что производительность является второстепенным фактором для рассмотрения здесь.

2

Вы должны заботиться о безопасности данных, а затем о производительности. Если вы объединяете параметры запроса, ваша безопасность подвержена риску, а также может нарушить ваш запрос; это не лучший способ.

Таким образом, вы должны параметризовать свой запрос вместо конкатенации для меры безопасности, для обработки строки запроса требуется очень мало времени.

1

Использование параметризованного запроса является наиболее рекомендуемым решением. Это предотвратит угрозу SQL-инъекции, а также предоставит вам гибкость при обновлении запроса по мере необходимости без какого-либо воздействия на ваш запрос.

вы можете использовать постоянный запрос как часть базовой разработки, но при использовании производственного кода следует использовать параметризованный запрос и пытаться использовать подготовленные операторы, чем обычные строковые выражения. Использование подготовленного Statement в Java JDBC повышает производительность и преимущества безопасности.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню