我已经使用Laravel和vuejs为我的大学的学生选择创建了一个Web应用程序。因此,我必须管理1000条记录,并且选择逻辑作为存储过程和函数写在DB端。每条记录将通过逻辑并选择特定课程。这是简短的过程。
所以我的问题是我运行了596条记录的存储过程,并且花了303.734 seconds
来完成选择过程,在这样的时间之后返回结果是否是错误的做法?
cand_table_loop: LOOP
IF cand_id > cand_list_length then
LEAVE cand_table_loop;
END IF;
#select incr1;
SET prog_option = OptionsByStudent(cand_id,1);
SET limitByProg = StudentLimitByProgram(prog_option);
SET alstream = AlStreamForStudent(cand_id);
IF(AL2Prog(alstream,prog_option, cand_id) && limitByProg > 0) THEN
# UPDATE QUERY
IF(updateCandidate(cand_id)) THEN
IF(updateLimit(prog_option, 0)) THEN
#SELECT "SELECTED TO Option 1";
SET method_bool = createFinalList(cand_id,prog_option,1, 1);
#insert into number_one (id, `alstream`, `zscore`,`selected_program`, `selected_option`) values (incr1, alstream, );
END IF;
END IF;
ELSE
SET prog_option = OptionsByStudent(cand_id,2);
SET limitByProg = StudentLimitByProgram(prog_option);
#SELECT "1st ELSE";
IF(AL2Prog(alstream,prog_option, cand_id) && limitByProg > 0) THEN
# UPDATE QUERY
IF(updateCandidate(cand_id)) THEN
IF(updateLimit(prog_option, 0)) THEN
#SELECT "SELECTED TO Option 2";
SET method_bool = createFinalList(cand_id,prog_option,2, 1);
#insert into number_one (id, `name`, `option`, `program`) values (incr1, alstream, 2, prog_option);
END IF;
END IF;
ELSE
SET prog_option = OptionsByStudent(cand_id,3);
SET limitByProg = StudentLimitByProgram(prog_option);
#SELECT "2nd ELSE";
IF(AL2Prog(alstream,prog_option, cand_id) && limitByProg > 0) THEN
# UPDATE QUERY
IF(updateCandidate(cand_id)) THEN
IF(updateLimit(prog_option, 0)) THEN
#SELECT "SELECTED TO Option 3";
SET method_bool = createFinalList(cand_id,prog_option,3, 1);
#insert into number_one (id, `name`, `option`, `program`) values (incr1, alstream, 3, prog_option);
END IF;
END IF;
ELSE
SET method_bool = createFinalList(cand_id,"",0, 0);
END IF;
END IF;
END IF;
SET cand_id = cand_id + 1;
ITERATE cand_table_loop;
END LOOP;