Use Containable
The Containable behaviour will help you get exactly the data you want without the overhead of recursive 2
set it in your AppModel to make it apply to all models at once and read up on the docs on how to use it
class AppModel extends Model {
public $actsAs = array('Containable');
public $recursive = -1;
}
For some interfaces in your application, you may not need that much information from the model. One thing the ContainableBehavior does is help you cut down on what find() returns.
It is possbible to only set this on the models where you would use it and set recursive to -1 right before your find (in wich you would use 'contain') but it is in my eyes a best practise to do this for all models