I am starting a high end complex project which will have an online and offline module.

Can someone list down the techniques to be kept in mind to ensure a speedy db - such as using INNODB tables , putting indexes on searchable fields and so on.