我希望迭代一个USERS表,对于根据我的where子句选择的每个用户,在LOOP中执行一堆mysql查询,包括临时表创建,使用prepare语句等等。
如果要做到这一点,在性能方面最好的方法是什么。使用while,for each,for,重复?
例如。(伪代码)
foreach user_name in (select user_name from users where user_type = 'SP' and active = 'Y')
do
set @l_query1 = concat("create temp_table_t1 select * from ...")
PREPARE ..
EXECUTE ...
set @l_query2 = ...
....
.... etc ..
done
好的,我有一个表用户,其中pK = user_name。
因此,这个查询将很快执行, 我只需要通过这个resultSet循环,并在LOOP中执行剩余的mySQL查询。 我如何通过简单选择的resultSet进行LOOP?
感谢
答案 0 :(得分:0)
, for-each , repeat 等
之间的性能没有区别。如果您正在寻找性能提升,请考虑减少代码在数据库上执行的查询数量的位置。例如,为所有用户运行一次查询将是一个巨大的帮助,而不是为每个用户运行一次。