【发布时间】:2015-02-01 21:16:54
【问题描述】:
我会在这里从另一个问题中得到一些文字:
PreparedStatement 是Statement 的稍微强大的版本,并且应该始终至少与语句一样快速和易于处理。
Prepared Statement可以被参数化
大多数关系数据库通过四个步骤处理 JDBC/SQL 查询:
- 解析传入的 SQL 查询
- 编译 SQL 查询
- 规划/优化数据采集路径
- 执行优化查询/获取并返回数据
对于发送到数据库的每个 SQL 查询,Statement 将始终执行上述四个步骤。 Prepared Statement预先执行上述执行过程中的步骤(1)-(3)。因此,在创建 Prepared Statement 时,会立即执行一些预优化。其效果是减少执行时数据库引擎的负载。
现在这是我的问题:
如果我使用成百上千个Statement,会不会导致数据库出现性能问题? (我并不是说他们会因为每次做更多的工作而表现得更慢)。所有这些语句会被缓存在数据库中,还是会在执行后立即丢失在空间中?
【问题讨论】:
标签: mysql database prepared-statement