Triggers is also something that I would advise to avoid. Try using transactions instead. Sometimes it is better to update a total field of the master table each time a detail record is inserted or updated. That said, it is better to test the performance since you have a large database.
Also, although indexes help, do ensure that your indexes are well maintained. Indexes on foreign keys can also be created, or tables can be de-normalised if necessary, for performance.