Jam*_*hon 3 sql database performance prepared-statement
使用带有一个问号的“准备好的陈述”五十次,或者使用带有五十个问号的“准备好的陈述”,性能更高?
本质上Where Person = ?还是Where Person IN (?, ?, ?, ...)更好?
假设您有一个带有列,国家/地区的表,然后有几个关系表,您具有该国家/地区的人口。
在列出1000个国家/地区的名单后,获得人口增长的最佳方法是什么?
请记住,这是一个假设的示例,Wikipedia将国家/地区的数量设为223,让我们假设此示例的数量要大得多。
创建一个接受国家/地区参数并返回人口的语句。例:Where Country = ?
动态创建一个Prepared Statement,添加?针对每个国家/地区使用Where in
(?,?,etc)条款。例:Where Country = (?, ?, ...)
像在选项一中那样创建一个简单的语句,但是遍历并为每个国家重复使用一个参数“预备语句”。
最好的方法是什么?
我可以用一些真实数据进行测试,从而达到了项目的目的。
根据1435个项目,选项1约需8分钟,选项2约需15秒,选项3需约3分钟。
在性能方面,选项2是明显的赢家。编码起来有点困难,但是性能差异太大,无法忽略。
我知道来回访问数据库是瓶颈,尽管我确信此处列出的结果会根据网络,数据库引擎,数据库机器规格和其他环境因素而有所不同。
| 归档时间: |
|
| 查看次数: |
3028 次 |
| 最近记录: |