Ben veritabanına erişen bir model sınıfı için idam sorgu sonuçlarını önbelleğe Zend_Cache_Backend_File ile Zend_Cache_Core kullanıyorum.
Temelde sorguları kendilerinin elde edilen sonuçları önbelleğe hangi, tek sorun, onlar çok uzun kimliği oluşturmalıdır. Zend_Cache_Backend_File, bir istisna değil PHP şikayet yok ama önbellek dosyası oluşturulur.
Ben bu yüzden gibi ayrı bir dosyada bir autoincrementing kimliği ile birlikte herhangi bir idam sorgu depolama, de verimli olmayan bir çözüm ile geldim:
0->>SELECT * FROM table 1->>SELECT * FROM table1,table2 2->>SELECT * FROM table WHERE foo = bar
Siz anladınız; Bu şekilde ben her sorgu için benzersiz bir kimliğe sahip. Ben bir ekleme, silme zaman önbelleği temizlemek, veya güncelleştirme yapılır.
Şimdi, herhangi bir test için, burada potansiyel darboğaz görmek, kaydetmek veya önbellek iki (ya da biz yeni bir id eklemek gerekiyor üç) istekleri dosya sistemine yapılan alınamayacak eminim. Bu bile alltogether önbelleğe ihtiyaç yenilgi olabilir. Yani ben dosya sistemi veya bir veritabanında depolamak zorunda kalmadan php sorguları çok daha kısa bir temsili yani benzersiz bir kimliği, üretebilir bir yolu var mı?