哪个更好:在过程中调用过程或在过程中执行sql?

时间:2014-11-03 11:00:13

标签: mysql stored-procedures join

我有3张桌子:
 1.学生:{id,name,roll}
 2. subject:{id,name}
 3.标记:{student_id,subject_id,marks}

我有一个返回所有学生及其标记的程序(比如getAllMarks()),我想创建另一个程序,它返回给定掷骰的标记号(比如getRollMarks(int rollno))。所以我可以通过两种方式创建程序:
1.编写适当的SQL以获取getRollMarks过程中的结果 2.在getRollMarks中调用getAllMarks,然后对getAllMarks返回的结果应用where子句。

任何人都可以建议以上两种方法的优点和缺点吗?我有2个方法2的优点:
1.SQL查询不会在程序中重复出现 2.如果一张表中有任何变化,则更改将在一个地方/程序进行,而不是在使用该表的每个程序中进行。

PS:这些表只是例如,实际上它们是更大的表,有许多参数可供查询。这个问题可以简化为我们应该在不同的程序中编写重复的查询,还是应该使用现有的程序和必需的子句(where,order by,join等)?

1 个答案:

答案 0 :(得分:1)

如果您不想重复查询,则应该使用视图。同样表现也更快。

相关问题