9 puan yazan yunyun0505 2023-07-14 | 2 yorum | WhatsApp'ta paylaş

Duruma uygun, aşırıya kaçmayan bir mühendislikle arama hizmetinin nasıl iyileştirildiğine dair bir vaka.

Sorunun fark edilmesi

  • Yavaşlayan arama hizmeti
  • Join ve arama için regex kullanımının yol açtığı karmaşıklık sorununun fark edilmesi

Sorunu çözme stratejisi

  • Başlangıçta Elasticsearch düşünülmüştü
  • Ana DB ile gerçek zamanlılık ve büyük miktarda kalıcı olarak saklanacak veriyi ele alma gereksinimi nedeniyle maliyet sorunu vardı
  • Aramaya özel sadeleştirilmiş bir tablo oluşturulup arama sorguları kurgulandı
  • Veri yüklemek için MySQL Trigger uygulandı

Sonuçlar

  • 3 dakika süren sorgu 2 saniyeye indirildi
  • Aşırıya kaçmayan mühendislikle kısa sürede müşteriye değer sunuldu

2 yorum

 
neidn 2023-07-20

Trafiği yüksek büyük ölçekli bir site kurarken kullanılan, tek bir veri için birden fazla tablo oluşturup kullanım amacına göre ayırma yöntemini uygulamışlar.
Bazen müşteri tarafı ve yönetici tarafı olarak ikiye ayrılıyor; burada da arama için kullanım amacı belirlenip iyi uygulanmış bir örnek olmuş.

 
cosine20 2023-07-19

DB alanına çok hakim değilim, bu yüzden böyle bilgilendirici yazıları okuyunca hem şaşırıyor hem de eğleniyorum.