【发布时间】:2012-05-05 09:42:51
【问题描述】:
我刚刚成功尝试使用 beginTransaction() 在我的项目中使用 PHP 执行我的 sql 语句。我有一系列项目需要写入数据库,并且每个项目都必须在存储之前针对某些内容进行验证。关闭数据库的自动提交行为的好处之一是,如果中间出现问题,您可以回滚整个事务。在我的项目中,如果一项无效,整个数组不应该记录在数据库中,这就是我选择使用这种方法的原因。
现在我只是想知道这在性能方面是否真的是更好的方法?因为即使验证了数组中的最后一项,我仍然需要手动 commit() 之前的执行。 commit是否重复sql执行?
我现在能想到的唯一优势是,如果您想验证所有项目(假设所有项目都有效),则只需执行一个循环而不是两个循环,然后编写每个循环。
【问题讨论】:
-
SQL不是数据库产品。它只是许多 RDBMS 使用的一种语言。您使用的是什么数据库系统,什么版本?
-
稍微 OT:如果可以通过查看数据库状态和更改本身来确定更改的有效性,那么可以说最好将验证放在
BEFORE触发器中,以便业务无论使用哪个应用程序代码客户端,都会应用逻辑。
标签: php sql postgresql database-performance