0
我正在尋找遍歷一個USERS表,併爲每個用戶選擇基於我的where子句,在LOOP內執行一堆mysql查詢,包括臨時表創建,使用準備語句,等通過MYSQL表循環的最佳性能方法
應該這樣做,在性能方面最好的方法是什麼。使用while,for each,for,repeat?
例如。(僞碼)
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。
所以,這個查詢將會很快執行,我只需要LOOP通過這個resultSet,然後在LOOP中執行其餘的mySQL查詢。 我怎樣才能通過一個簡單的選擇結果集循環?
感謝
您所描述的是對數據集的RBAR操作。無論你使用什麼,這可能會很慢。如果您可以向我們展示我們可能能夠以基於SETS的方式解決它的數據結構和查詢。 – Namphibian
你可以在一個帶有連接的查詢中完成所有這些工作,這當然會減少執行時間 –