参数化查询的性能不同分贝的(performance of parameterized queries

2019-08-02 04:46发布

很多人都知道,它使用参数化查询防止SQL注入攻击是非常重要的。

参数化查询也是SQLite和甲骨文更快做在线交易处理时,因为查询优化器没有执行前重新分析每一个参数化的SQL语句。 我见过的SQLite越来越快3倍,当您使用参数化查询,Oracle可以成为快10倍,当您使用在某些极端情况下参数化查询了大量并发的。

怎么样其他分贝的,如MySQL,MS SQL,DB2和PostgreSQL?

有没有在参数化查询和文字之间的查询性能相等的区别?

Answer 1:

对于MySQL的,MySQLPerformanceBlog 报道每秒查询与非预处理语句,预处理语句和查询缓存语句的一些基准。 他们的结论是,准备好的语句实际上比在MySQL非预处理语句快14.5%。 按照链接了解详情。

当然,比变化基于该查询。

有人假设有一些开销,因为你正在做从客户额外的往返到RDBMS - 一个准备的查询,第二个参数传递和执行查询。

但现实的情况是,这些都是没有实际测量做出错误的假设。 我从来没有听说过预处理语句是任何品牌的数据库慢。



Answer 2:

我几乎总是出现在高速增长 - 但只有在第一时间一般。 该计划被加载并缓存后,我会猜测,各种数据库引擎将表现为两种类型相同。



文章来源: performance of parameterized queries for different db's