21 Haziran 2015 Pazar

FMDB kullanırken Vacuum kullanımı

Diyelim ki oyununuzun ipa ile gelen paketinin içinde bir veritabanı var ve bu veritabanını uygulamanın kullanımı sırasında güncelliyorsunuz. Bu durumda veritabanı dosyasını modifiye edilebilir hale gelmesi için documents klasörüne kopyalamanız gerekiyor. Kopyalamayı yaptınız diyelim. Bu kopyalamadan sonra bazı tabloları boşaltıp uygulamanın paketi içinden gelen veritabanı dosyasındaki elemanlarla rastgele bir sırada karıştırırarak yeniden dolduruyorsanız "vacuum" komutuna ihtiyacınız vardır. Tüm veritabanlarında genellikle bir kayıt silindiğinde aslında o kayıt veritabanından fiziksel olarak silinmez sadece silinmiştir diye işaretlenir. Bu mantıksal silinmiş kayıtları fiziksel olarak ta silmek için genellikle veritabanına bakım işlemi gerçekleştirirsiniz. Bu işlem sırasında boş bir veritabanı geçici olarak oluştulup içine orjinal veritabanındaki mantıksal olarak mevcut bilgiler aktırılır. Sonra orjinal veritabanı fiziksel olarak silinir ve yerine yeni oluşturulan veritabanı aynı dosya adıyla kopyalanıp kullanılmaya başlanır. sqlite'ta bu işlem için "vacuum" denilen bir komut var. Bu komutu executeUpdate komutuyla çalıştırırsanız veritabanındaki mantıksal kayıtlar fiziksel olarak silinmektedir. Bu ne işe mi yarar, veritabanı dosyanızın boyutuna bağlı olarak hem dosya boyutunuz küçülür hem de veritabanı üzerindeki işlem hızlarınız artabilir. Sevgiler.

Hiç yorum yok:

Yorum Gönder