Witaj,
-
'cache'=>array(
'class'=>'system.caching.CFileCache',
'cachePath'=>'cache',
'directoryLevel'=>1
),
Tutaj ustalasz klasę cachującą i sposób cachowania.
W tym przypadku pamięć podręczna będzie zapisywana do pliku.
Jest kilka innych klas APC, MemCache, DbCache (domyślnie zapisuje do bazy sqlite3).
APC i MemCache wymagają ustawienia serwera (na większości hostingów nie ma takiej opcji).
-
'schemaCachingDuration'=>3600,
Powoduje cachowanie schematu tabel. Za każdym razem jak tworzysz nowy aktywny rekord danego rodzaju
to najpierw pobierana jest informacja jak zbudowana jest tabela (jakie ma pola, jakie rodzaje pól).
Jeżeli masz ustawiony cache z 1. pkt. to wtedy tam zapiszą się informacje o budowie i będą pobierane z tamtąd.
Należy uważać: gdy zmienisz coś w bazie danych (np. dodasz nowe pole) to należy wyczyścić pamięć podręczną.
Zresztą możesz to sprawdzić za pomocą rozszerzenia z pkt. 4 
-
'enableProfiling' => true,
'enableParamLogging' => true,
Te dwa parametry powinny być wyłączone na serwerze produkcyjnym.
Np. pierwszy z nich powoduje liczenie jak długo dane zapytanie się wykonywało.
Potrzebne w fazie testów i pracy nad aplikacją, a potem można wyłączyć.
- Do testowania szybkości działania zapytań SQL polecam to rozszerzenie:
http://www.yiiframework.com/extension/yii-debug-toolbar/
Oprócz tego zawiera wiele innych informacji takich jak: zmienne globalne, użycie pamięci podczas działania skryptu itd.
Pozdrawiam Mariusz