在不使用视图的情况下保持表中不同表的最新信息

Am working on a particular exam system. As you know, several exams will usually be aggregated to form a final result at the end of the term/semester. Now, thats where my troubles start. i want to store it in such a way that the marks for the individual exams are stored while also their aggregation is stored in such a way that whenever the values in the underlying tables changes, the result is automatically updated. I know the near-perfect solution is MySQL views but i used them and it takes a century to fetch results for a dozen students! So i got rid of them and opted to, when generating the final results, query the underlying tables individually. This also takes time to process and also it does not look sustainable in the long run.

So my questions are:

  1. How can i achieve the same result without having to query all the tables during runtime, or without views?
  2. Also, if i can use views, how can i optimize their performance?
  3. Also, someone might want to comment on the choice of PHP/MySQL as the languages to use to develop a critical system like an exam system.