在DB服务器中具有较高的执行时间是否不好?

时间:2019-03-02 06:08:30

标签: mysql laravel

我已经使用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;

0 个答案:

没有答案