İçeriğe geç

Veritabanı Tasarımı & Optimizasyon

MySQL ve PostgreSQL için veri modelini işin kurallarına göre tasarlıyor, yavaşlayan sorguları ölçerek hızlandırıyorum. İyi kurulmuş bir şema, uygulama büyüdükçe ortaya çıkacak sorunların çoğunu baştan önler.

Regenix Sağlık Merkezi, Medical Expert Health, ART OTO AYNA ve ARAS Elektrik projelerinde veritabanı olarak MySQL kullandım; Laravel projelerinde şemayı migration'larla, kodla birlikte sürümlüyorum. Blogda da indeksleme, EXPLAIN ile sorgu okuma, işlemler ve kilitleme üzerine yazdım.

Neler dahil

  • İş kurallarına uygun tablo ve ilişki tasarımı
  • İndeks stratejisi ve EXPLAIN ile sorgu analizi
  • Yavaş sorguların ölçülüp iyileştirilmesi
  • İşlemler (transaction) ve eşzamanlı erişimde veri tutarlılığı
  • Şema değişikliklerinin migration'larla yönetilmesi

Süreç

  1. Mevcut durumu ölçüyorum Şemayı, en sık çalışan ve en yavaş sorguları inceliyorum.
  2. Darboğazları buluyorum Yavaşlığın eksik bir indeksten mi, sorgunun yapısından mı yoksa veri modelinden mi geldiğini ayırıyorum.
  3. İyileştirip yeniden ölçüyorum Her değişikliğin etkisini öncesi ve sonrasıyla karşılaştırarak gösteriyorum.
  4. Belgeliyorum Yapılan değişiklikleri ve nedenlerini ileride ekibinizin de anlayacağı şekilde yazıyorum.

Teknolojiler

MySQL, PostgreSQL, SQL, Laravel, Eloquent

Sık sorulan sorular

Mevcut veritabanımı baştan kurmadan hızlandırmak mümkün mü?

Çoğu zaman evet; doğru indeksler ve yeniden yazılan birkaç sorgu belirgin fark yaratabilir. Önce ölçüp darboğazın nerede olduğunu gösteriyorum, değişikliğe birlikte karar veriyoruz.

Süre ve fiyat nasıl belirleniyor?

İşin kapsamına göre. Önce mevcut durumu ölçüyorum; süreyi ve fiyatı içeren teklifi bu ölçüme göre hazırlıyorum.