Enabling Schema Caching Mit Mysql Als Dbms

Hallo zusammen,

das Blog Tutorial von Yii hat mich bis in die vorletzte Runde gebracht und ich bin beim Thema Caching im Blog Tutorial angelangt. Da ich eine MySQL Datenbank nutze und keine sqlite, bleibt die Frage was sollte fürs Caching mit MySQL angegeben werden?

Für sqllite solls mit folgendem in der /config/main.php funktionieren:


return array(

    ......

    'components'=>array(

        ......

        'cache'=>array(

            'class'=>'CDbCache',

        ),

        'db'=>array(

            'class'=>'system.db.CDbConnection',

            'connectionString'=>'sqlite:/wwwroot/blog/protected/data/blog.db',

            'schemaCachingDuration'=>3600,

        ),

    ),

);

Wäre so etwas richtig anzuwenden:


'cache'=>array(

    'class'=>'system.caching.CApcCache', // caching type APC cache

),

'db'=>array(

    'connectionString' => 'mysql:host=localhost;dbname=...',

    'emulatePrepare' => true,

    'username' => '...',

    'password' => '...',

    'charset' => 'utf8',

    'schemaCachingDuration'=>3600,

),

Ein cache Array mit dem APC Cache und unter der MySQL Verbindung schemaCachingDuration mit angeben?!?

… es kommt ne Meldung : CApcCache requires PHP apc extension to be loaded.

Habe auch noch nicht apc geladen. Kennt jemand noch andere Cache Varianten für das Schema Caching und die Konfiguration in der main.php?

Nun ja, eigentlich spricht nichts dagegen, unter MySQL für das Schema Caching ebenfalls den CDbCache zu verwenden. Ansonsten haben abgesehen von CFileCache und CDummyCache alle Caches irgendwelche Abhängigkeiten.

Hey Sourcerer, danke für die fixe Antwort ^_^ . Habe CFileCache und CDummyCache mal nachgeschlagen und sehe CFileCache noch als Option für die Einstellung in der main.php.

Aktuell habe ich’s so eingestellt:


'components'=>array( 

   ...

      'db'=>array(

         'connectionString' => 'mysql:host=localhost;dbname=...',

         'emulatePrepare' => true,

         'username' => '...',

         'password' => '...',

         'charset' => 'utf8',

         'schemaCachingDuration'=>3600,

       ),


      'cache'=>array(

         'class'=>'CDbCache',

       ),

Das funktioniert wohl, keine Fehlermeldungen mehr. Im /protected/runtime-Ordner hat sich eine cache-1.1.14.db gebildet, die auch ordentlich beschrieben wird.

:)

Da nicht für. Allerdings solltest du dir für die Produktionsumgebung eine Lösung suchen, die den Cache im Speicher hält.