我做了一些测试,首先我用$pdo->prepare()
和$insert_sth->execute()
测试了mysql准备好的语句,用于10k插入(如果重要的话,带有命名参数),花了301秒。
之后我做了简单的插入查询,并且每次插入相同的10k插入也花了303s。
所以我想知道:准备好的陈述真的能带来性能上的好处吗?因为我的测试没有显示它,或者我必须优化我准备好的语句版本才能使它们更快?
如果需要,我可以提供我的源代码。
答案 0 :(得分:7)
我更喜欢准备好的语句而不是性能(不确定它是否更快),例如避免sql注入。
答案 1 :(得分:1)
INSERT
很可能是IO绑定的,因为它们在SQL方面通常不是很复杂 - 只是要放入其中的列和数据列表。因此,用于执行查询的内容在运行时并不像填充到数据库中的数据量,数据到数据库服务器的速度以及数据库服务器的速度那么快可以存储它。