通过MYSQL表进行LOOP的最佳性能方法

时间:2012-06-22 08:13:57

标签: mysql

我希望迭代一个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?

感谢

1 个答案:

答案 0 :(得分:0)

for-each repeat

之间的性能没有区别。

如果您正在寻找性能提升,请考虑减少代码在数据库上执行的查询数量的位置。例如,为所有用户运行一次查询将是一个巨大的帮助,而不是为每个用户运行一次