Gerçek yüke göre tasarlanmış veritabanı
Veri modelini tasarlıyor, gereken indeksleri ekliyor, yavaş sorguları sistemin gerçekte yaptığı işe göre yeniden yazıyoruz; her değişiklikten önce ve sonra ölçüm alıyoruz.

Kimin için
Verisi büyüdükçe sistemi yavaşlayan ya da sıfırdan bir ürüne başlayan şirketler için.
Neyi çözer
- Eskiden hemen açılan ekranlar ve raporlar artık bekletiyor; hangi sorgunun yavaşlattığını kimse bilmiyor.
- Tablolar plansız büyüdü, aynı veri farklı yerlerde duruyor.
- Canlıda bir sütunu değiştirmek korkutuyor, çünkü veritabanındaki değişikliklerin geçmişi tutulmuyor.
- CNPJ sayı olarak saklanıyor; harf de içeren yeni CNPJ'ler alana sığmıyor.
- Her yoğun saatte veritabanı sınıra dayanıyor, sistem herkes için yavaşlıyor.
Ne yapıyoruz
- Veri modeli
- Tablolar, ilişkiler ve kısıtlar tek tek ekranlara göre değil, iş kurallarına göre tasarlanır.
- Yavaş sorguların tespiti
- En çok süre ve kaynak harcayan sorguları ölçer, işe onlardan başlarız.
- İndeksler ve yeniden yazılan sorgular
- Gerçek sorgular için indeks eklenir, sorgular yeniden yazılır; her değişikliğin kazancı ölçülür.
- Sürümlenen şema değişiklikleri
- Veritabanındaki her değişiklik gözden geçirilmiş, test edilmiş bir betiğe dönüşür ve her ortamda aynı biçimde uygulanır.
- Brezilya'ya özgü alanlar
- CPF, alfanümerik CNPJ, CEP ve real cinsinden tutarların tipi ve doğrulaması baştan tanımlanır.
- Önbellek ve okuma kopyaları
- Ölçümler gerekli gösterirse sık yapılan okumalar ana veritabanından önbelleğe ya da bir okuma kopyasına alınır.
Neler teslim edilir
- Diyagramı ve alan sözlüğüyle belgelenmiş veri modeli
- Önce ve sonra ölçümleriyle yavaş sorgu raporu
- Canlıda çalışan, iyileştirilmiş indeksler ve sorgular
- Deponuzda sürümlenen şema değişiklikleri
- Bir sorgu yavaşladığında alarm veren veritabanı performans panosu
Nasıl ilerliyoruz
Ölçüm
Gerçek sorguları, veri hacmini ve yoğun saatleri toplarız.
Teşhis
Darboğaz bulunur: model, indeks, sorgu ya da veritabanı ayarı.
Test ortamında ayar
Her değişiklik canlıdakine yakın bir veri hacmiyle denenir.
Yayın
Değişiklikler sürümlü betiklerle, anlaşılan saatte ve geri dönüş planıyla uygulanır.
İzleme
Yeni ölçümler başlangıçtakilerle karşılaştırılır; hâlâ yavaş kalan kısım elden geçer.
Teknoloji örnekleri
- PostgreSQL
- MySQL
- SQL Server
- Redis
- Flyway
- pg_stat_statements
İlgili hizmetler
Sık sorulan sorular
Veritabanını değiştirmemiz gerekir mi?
Genellikle ilk adım bu değildir. Mevcut veritabanında modeli, indeksleri ve sorguları iyileştirmek çoğu zaman daha ucuza gelir. Ölçüm bunun çözemeyeceği bir sınır gösterirse değişim gündeme gelir; o zaman iş bir veri taşıma projesine dönüşür.
SQL mi, NoSQL mi?
Verinin yapısına ve nasıl sorgulandığına bağlı. İlişkileri ve işlemleri olan sipariş, ödeme ve müşteri kayıtlarında ilişkisel bir veritabanı genellikle yeter; başka bir tür ancak ölçülmüş bir gerekçe varsa devreye girer.
Bu ayarlar sistemi durdurmadan yapılabilir mi?
İndeks eklemek gibi birçok değişiklik sistem çalışırken yapılabilir. Bakım penceresi gerektirenler önceden konuşulur; saati ve geri dönüş planı birlikte belirlenir.
Sorun veritabanında değil de koddaysa?
Olur; örneğin aynı sorguyu defalarca çalıştıran bir ekran. Bu durumda veritabanına erişen kodu düzeltir ya da sorunlu yeri ekibinize tam olarak gösteririz.
Balkan'a yazın
Projeniz için yazın