TypeORM Caching ve Performans Optimizasyonu
TypeORM Caching ve Performans Optimizasyonu
Modern web uygulamalarında veritabanı sorgularının optimize edilmesi, uygulama performansı ve ölçeklenebilirliği için oldukça kritiktir. TypeORM caching ve performans optimizasyonu bu süreçte önemli bir rol oynamaktadır. Doğru bir şekilde yapılandırılmış cache, hem yanıt sürelerini kısaltır hem de veritabanı üzerindeki yükü ciddi şekilde azaltır. Bu yazıda, TypeORM üzerinde caching’i nasıl etkinleştireceğinizi ve uygulamanızda en iyi performansa ulaşmak için hangi optimizasyon tekniklerini kullanabileceğinizi öğreneceksiniz.
TypeORM Caching Özellikleri
TypeORM, yerleşik olarak sorgu önbellekleme (caching) desteği sunar. Sorgu önbellekleme belirli verilerin tekrar tekrar sorgulanmasını önleyerek gereksiz veritabanı trafiğini azaltır. Aşağıda, TypeORM’de cache’in nasıl etkinleştirileceğine dair örnek bir konfigurasyon yer alıyor:
import { DataSource } from "typeorm";
const AppDataSource = new DataSource({
type: "mysql",
host: "localhost",
port: 3306,
username: "test",
password: "test",
database: "testdb",
entities: [__dirname + "/entity/*.js"],
synchronize: true,
cache: {
type: "redis",
options: {
host: "localhost",
port: 6379
},
duration: 60000 // 60 saniye
}
});
Yukarıdaki örnekte, cache anahtarı ile Redis altyapısı kullanılarak sorgular 60 saniye boyunca önbelleğe alınıyor. Bu ayar ile yüksek trafikli uygulamalarda önemli ölçüde performans artışı sağlayabilirsiniz.
Performans Optimizasyonu İçin İpuçları
1. Select ve Join Sorgularını Optimize Edin
TypeORM ile karmaşık ilişkiler içeren büyük tabloları sorgularken sadece ihtiyaç duyulan alanları çekmek performans artışı sağlar. Gereksiz tüm alanları getirmekten kaçının:
const users = await dataSource.getRepository(User).find({
select: ["id", "name", "email"],
relations: ["profile"]
});
2. Query Builder ve Index Kullanımı
İleri düzey sorgularda QueryBuilder kullanarak hem cache'i hem de indeksleri daha efektif yönetebilirsiniz. Indexlerin, sık sorgulanan sütunlarda bulunduğundan emin olun:
const result = await dataSource.getRepository(User)
.createQueryBuilder("user")
.where("user.status = :status", { status: "active" })
.cache(true)
.getMany();
Bu örnekte, .cache(true) satırı ile sorguya özel cache etkinleştirilmiştir.
Sonuç: Doğru Caching ile Yüksek Performans
TypeORM caching ve performans optimizasyonu, büyük ölçekli uygulamalarda olmazsa olmaz konulardır. Cache yapılandırmasını ihtiyaçlarınıza göre özelleştirin, özel ve kompleks sorgularda QueryBuilder ile cache'i doğru yönetin. Ayrıca, doğru indexleme ve sadece gereken alanları çekerek hem işlem süresini hem de kaynak tüketimini minimize edebilirsiniz. TypeORM’in sunduğu geniş caching olanaklarını kullanarak veritabanı operasyonlarında en iyi performansı kolayca gerçekleştirebilirsiniz.

Yorum Gönder