sql - 使用准备好的语句有缺点吗?

标签 sql prepared-statement

我一直在阅读很多关于准备好的陈述,在我读过的所有内容中,没有人谈论使用它们的缺点。因此,我想知道是否有任何人们容易忽视的“有龙”的地方?

最佳答案

准备好的语句只是一个经过解析和预编译的 SQL只等待提供绑定(bind)变量执行的语句。

任何执行的语句迟早都会准备好(需要解析、优化、编译然后执行)。

准备好的语句只是重用解析、优化和编译的结果。

通常数据库系统使用某种优化来节省查询准备时间,即使您自己不使用准备好的查询。
Oracle ,例如,在解析查询时首先检查库缓存,如果相同的语句已经被解析,它会使用缓存的执行计划。

关于sql - 使用准备好的语句有缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1363039/

相关文章:

java - Oracle MERGE 和准备好的语句

MySQL查询,SQL

java - 标记输入的最佳方法

php - Mysql查询查找2列的最小值和最大值,其中1列的最小值不能等于零

mysql - 来自另一个表的有限时间范围的聚合

MySQL 查询缓慢或卡在发送数据上

JavaPreparedStatement和AlterTable语法错误

php - 带有字符串插值的准备语句因语法错误而失败

java - 我应该如何重用准备好的语句在 Java 中执行多个插入?

php - 使用 MySQLi 安全地创建动态表