Gömmeler Nelerdir? Vektörler ve Kosinüs Benzerliği Basitçe Açıklandı

  1. Ana sayfa
  2. Blog
  3. Yapay Zeka

Yapay Zeka

Gömmeler Nelerdir? Vektörler ve Kosinüs Benzerliği Basitçe Açıklandı

Yerleştirmeler, bilgisayarların kelimeleri tam olarak eşleştirmek yerine anlamları karşılaştırmasına olanak tanır. Anlamsal aramaya, önerilere ve RAG’a güç verirler. Bunların ne olduğunu, benzerliğin nasıl ölçüldüğünü ve sizi nerede hayal kırıklığına uğrattıklarını öğrenin.

8 dk okuma
Gömmeler nedir? Vektörler ve kosinüs benzerliği basit bir şekilde açıklandı

Önemli noktalar

  • Yerleştirme, metnin, bir görselin veya diğer verilerin anlamını temsil eden sayıların bir listesidir.
  • Benzer öğeler benzer sayılarla sonuçlanır, dolayısıyla anlam matematikle karşılaştırılabilir.
  • Kosinüs benzerliği yönü karşılaştırır ve iki yerleştirmenin ne kadar benzer olduğunu puanlamanın yaygın bir yoludur.
  • Yalnızca aynı modeldeki yerleştirmeleri karşılaştırın ve sonuçları kendi verileriniz üzerinde test edin.

“Paramı nasıl geri alabilirim” diye arama yaptığınızda, iyi bir sistem “Geri ödeme politikası” başlıklı bir sayfa bulmalıdır, her ne kadar ikisi arasında önemli bir kelime olmasa da. Bu yetenek, modern yapay zekanın en kullanışlı fikirlerinden biri olan yerleştirmelerden kaynaklanmaktadır.

Bu kılavuz, ağır matematik gerektirmeyen yerleştirmeleri açıklamaktadır. Python 3.13’te küçük bir örnek çalıştırdık ve çıktısı aşağıda gösteriliyor. Buradaki vektörler, fikrin görülmesini kolaylaştırmak için her biri yalnızca üç sayı içeren, elle oluşturduğumuz vektörlerdir. Gerçek yerleştirmeler eğitimli bir modelden gelir ve genellikle yüzlerce veya binlerce sayıya sahiptir.

Gömme nedir?

Gömme, bir şeyin vektör adı verilen bir sayı listesi şeklinde temsilidir. İlgili anlamlara sahip öğelerin birbirine yakın vektörler alması için bir model eğitilir.

"kitten"  -> [0.9, 0.8, 0.1]
"cat"     -> [0.9, 0.7, 0.2]
"invoice" -> [0.0, 0.1, 0.9]

Metin bu formda olduğunda, bilgisayar iki metin parçasının ne kadar benzer olduğunu hesaplayabilir ve bunu doğrudan kelimelerle yapamaz. Gömmeler kelimelerle de sınırlı değildir. Cümleler, tüm belgeler, resimler, ses ve ürünlerin tümü yerleştirilebilir.

Neden yalnızca anahtar kelimeleri eşleştirmiyorsunuz?

Sorgu ve belge Anahtar kelime arama Aramayı yerleştirme
“para iadesi” ve “geri ödeme politikası” Özledim, paylaşılan kelime yok Onu bulabilirim
“dizüstü bilgisayar” ve “dizüstü bilgisayar” Özlüyor Onu bulabilirim
“hata E1042” ve “E1042” içeren bir sayfa Tam olarak bulur Özleyebilirim
“banka” (nehir) ve “banka” (para) Onlara aynı şekilde davranır Bağlam dikkate alındığında bunları ayırabilir

RAG ile ilgili rehberimiz bunu pratikte göstermektedir. Basit bir kelime sayımı araması “Paramı ne zaman geri alabilirim?” sorusuna sıfır puan verdi. hiçbir kelime paylaşmadıkları için geri ödeme belgesine karşı. Üçüncü satıra da dikkat edin: tam tanımlayıcılar yerleştirmelerin zayıf noktasıdır, dolayısıyla anahtar kelime aramanın hala bir yeri vardır.

Bir harita düşünün

Her kelimeyi, konumun anlamı yansıttığı devasa bir haritaya yerleştirdiğinizi hayal edin. “Kedi” ve “yavru kedi” neredeyse yan yana oturuyor, “köpek” aynı mahallede, “fatura” ise farklı şehirde. İlgili kelimeleri bulmak için yakınınıza bakmanız yeterlidir.

Gerçek bir yerleştirme aynı şekilde çalışır; ancak haritanın iki yerine yüzlerce boyutu vardır. İnsanlar bunu hayal edemiyorlar ama matematik aynı şekilde çalışıyor. Bireysel sayıların genellikle “tüylülük” gibi net bir anlamı yoktur. Önemli olan genel konumdur.

Küçük bir çalışma örneği

El yapımı vektörlerimizi şu şekilde karşılaştırabilirsiniz:

import math

def cosine(a, b):
    dot = sum(x * y for x, y in zip(a, b))
    return dot / (math.sqrt(sum(x * x for x in a)) *
                  math.sqrt(sum(y * y for y in b)))

vectors = {
    "kitten":  [0.9, 0.8, 0.1],
    "cat":     [0.9, 0.7, 0.2],
    "dog":     [0.8, 0.3, 0.2],
    "invoice": [0.0, 0.1, 0.9],
}

for word in ("kitten", "dog", "invoice"):
    print(word, round(cosine(vectors["cat"], vectors[word]), 3))

# kitten 0.994
# dog 0.955
# invoice 0.238

“Kedi” karşısında “yavru kedi” en yüksek puanı alırken, onu “köpek” takip ediyor ve “fatura” çok daha düşük puan alıyor. Bu modeli oluşturmak için bu vektörleri seçtik, dolayısıyla sıralama gerçek dil hakkında hiçbir şey kanıtlamıyor. Yalnızca hesaplamanın nasıl davrandığını gösterir. Anlamsal arama aynı şeyi üç adımda yapar: sorguyu yerleştirin, depolanan her öğeye göre puanlayın ve sıralayın.

query = [0.85, 0.75, 0.15]
sorted(vectors, key=lambda w: cosine(query, vectors[w]), reverse=True)

# ['kitten', 'cat', 'dog', 'invoice']

Kosinüs benzerliği açıklandı

Her vektör orijinden gelen bir ok gibi düşünülebilir. Kosinüs benzerliği, iki ok arasındaki açıyı, ne kadar uzun olduklarını göz ardı ederek ölçer. Anahtar değerleri onayladık:

cosine([1, 2, 3], [2, 4, 6])   # 1.0   same direction
cosine([1, 0], [0, 1])         # 0.0   unrelated (at right angles)
cosine([1, 0], [-1, 0])        # -1.0  opposite directions
Puan Anlamı
1’e yakın Neredeyse aynı yöne doğrultun, çok benzer
0’a yakın ilgisiz
-1’e yakın Zıt yönlere doğrultun

İlk satıra bakın. [2, 4, 6], [1, 2, 3]‘nin iki katı uzunluğundadır, ancak puan mükemmel bir 1,0’dır, çünkü önemli olan tek şey yöndür. Bu, uzunluğun anlamdan ziyade belge boyutu gibi şeyleri yansıtabildiği metinler için kullanışlıdır. Eşiklere de dikkat edin. Kullanışlı aralıklar modelden modele farklılık gösterdiğinden “benzer” anlamına gelen evrensel bir puan yoktur; bu nedenle kendi verileriniz üzerinde test yapın.

Diğer mesafe önlemleri

Ölçü Neye bakıyor Notlar
Kosinüs benzerliği Yalnızca açı Metin için ortak bir varsayılan
Nokta çarpımı Açı ve uzunluk Hızlıdır ve normalleştirilmiş vektörlerde kosinüse eşittir
Öklid mesafesi Düz çizgi mesafesi Daha küçük, daha benzer demektir

Farkı görmek kolaydır. Kosinüs puanı 1,0 olan aynı iki vektörün Öklid mesafesi 3,742’dir çünkü biri diğerinden daha uzundur. Birçok sistem, vektörleri her birini 1 uzunluğa ölçeklendirerek normalleştirir. Bundan sonra, nokta çarpım ve kosinüs aynı cevabı verir ve biz de bunu doğruladık: her ikisi de “kedi” ve “köpek” için 0,955 verdi. Hangi ölçüyü önerdiğini görmek için modelinizin belgelerine bakın.

Gömmeler nasıl öğrenilir?

Gerçek sistemlerde hiç kimse bu numaraları elle atamaz. Bir sinir ağı bunları eğitim sırasında öğrenir. İlk ve etkili bir fikir, benzer bağlamlarda görünen kelimelerin, “kedimi besledim” ve “köpeğimi besledim” gibi benzer anlamlara sahip olma eğiliminde olmasıdır. Word2Vec ve GloVe gibi modeller bu kalıplardan kelime vektörlerini öğrendi.

Daha sonra BERT gibi transformatör tabanlı modeller, yerleştirmeleri bağlama duyarlı hale getirdi, böylece “banka”, “nehir kıyısı” ve “banka kredisi”nde farklı bir vektör elde edebildi. Birçok modern model tüm cümleleri veya pasajları aynı anda yerleştirir. Büyük dil modellerine ilişkin rehberimiz, transformatörlerin bağlamı nasıl ele aldığını açıklamaktadır.

Gömmelerin kullanıldığı yerler

Kullanım Nasıl yardımcı olur?
Anlamsal arama Sonuçları tam kelimeler yerine anlamlara göre bulur
paçavra Bir dil modeli için ilgili pasajları alır
Öneriler Beğendiklerinize benzer öğeler önerir
Kümeleme Gruplar, konuya göre destek taleplerini veya incelemeleri destekler
Yinelenen algılama Benzer soruları veya listeleri tespit eder
sınıflandırma Basit modeller için özellikler sağlar
Anormallik tespiti Her şeyden uzaktaki öğeleri işaretler

Örneğimiz, tam arama olarak bilinen bir sorguyu her öğeyle karşılaştırdı. Bu binlerce öğe için işe yarar, ancak milyonlarca öğe için yavaşlar. HNSW gibi yaklaşık en yakın komşu (ANN) endeksleri bu sorunu çözmektedir. Mutlak en iyi olanı kaçırmak için küçük bir şanstan vazgeçerek çok yakın eşleşmeleri hızlı bir şekilde bulurlar.

PostgreSQL için pgvector gibi vektör veritabanları ve uzantıları, filtreleme ve depolamanın yanı sıra bu dizinleri sağlar. Vektör veritabanı kılavuzumuz seçenekleri kapsar. Küçük bir proje için hiç ihtiyacınız olmayabilir ve bellek içi arama, başlamanın mükemmel bir yoludur.

İpucu: Karma aramayı erkenden değerlendirin. Gömme benzerliğini anahtar kelime eşlemeyle birleştirmek, özellikle kullanıcılar ürün kodlarını, adlarını veya hata mesajlarını aradığında genellikle tek başına yapmaktan daha iyi sonuçlar verir.

Bir gömme modeli seçme

  • Dil. Örneğin içeriğiniz Hintçe veya Tamil dilindeyse modelin bunu iyi şekilde işleyip işlemediğini kontrol edin.
  • Alan. Genel modeller, uzman hukuki veya tıbbi terimlerle zorluk yaşayabilir.
  • Boyutlar. Daha fazla boyut daha fazla ayrıntı yakalayabilir ancak daha fazla depolama ve belleğe mal olur.
  • Maliyet ve barındırma. Barındırılan bir API’yi, özellikle özel veriler için, kendi başınıza çalıştırabileceğiniz açık bir modelle karşılaştırın.
  • Giriş uzunluğu. Modellerin bir sınırı vardır, bu nedenle uzun belgelerin önce parçalara bölünmesi gerekir.

En iyi test kendi verilerinizdir. Bulması gereken belgelerle birlikte yaklaşık 20 gerçek sorgu toplayın ve her modelin bunları nasıl sıraladığını karşılaştırın. Yayınlanan karşılaştırmalar içeriğinizi yansıtmayabilir.

Sınırlamalar

  • Modele bağlılık. Farklı modellere ait vektörler karşılaştırılamaz. Modelleri değiştirirseniz her şeyi yeniden yerleştirmeniz gerekir.
  • Kesin terimler. Kimlikler, kodlar ve nadir adlar güvenilir şekilde eşleştirilemeyebilir.
  • Olumsuzlaştırma. “Geri ödemelere izin veriliyor” ve “geri ödemelere izin verilmiyor”, zıt anlamlara rağmen birbirine yakın olabilir.
  • Benzer, doğru anlamına gelmez. Yakın bir eşleşme güncelliğini kaybetmiş veya tamamen yanlış olabilir.
  • Önyargı. Yerleştirmeler, eğitim verilerinden stereotipleri emebilir.
  • Kosinüs sihirli değildir. Araştırmacılar bazı öğrenilmiş yerleştirmelerde bunun ne kadar anlamlı olduğunu sorguladılar; bu nedenle puanları bir doğruluk ölçüsü olarak değil, yararlı bir sinyal olarak ele alın.

Yaygın hatalar

  • Modelleri karıştırma. Sorguları ve belgeleri aynı model ve sürüme yerleştirin.
  • Her yerde tek bir benzerlik eşiği kullanma. Her model ve görev için bunu ayarlayın.
  • Devasa belgeleri bütünüyle gömmek. Anlam seyreltilir, bu nedenle ilk önce onları parçalara ayırın.
  • Değerlendirme atlanıyor. Test sorguları olmadan, bir değişikliğin yardımcı olup olmadığını anlayamazsınız.
  • Her şey için yerleştirmelerin kullanılması. Kullanıcılar tam kimlikleri ararsa normal bir veritabanı dizini daha iyidir.

Son sözler

Gömme, anlamı sayılara dönüştürür, böylece yazılım dizeler yerine fikirleri karşılaştırabilir. Konsept basittir, ancak pratik çalışma bir model seçmek, verileri parçalara ayırmak ve gerçek sorgular üzerinde test etmekten ibarettir. Kendiniz denemek için, kendi belgelerinizden birkaç düzinesini herhangi bir gömme modeliyle gömün, bunları gerçek sorularla arayın ve sonuçların sizi nerede şaşırttığını görün.

Sık sorulan sorular

Basit anlamda yerleştirmeler nelerdir?

Gömmeler anlamı temsil eden sayıların listeleridir. Benzer anlamlara sahip öğeler benzer sayılar alır, bu da bilgisayarın bunları matematiksel olarak karşılaştırmasına olanak tanır.

Kosinüs benzerliği nedir?

İki vektör arasındaki -1’den 1’e kadar olan açıyı ölçer. 1’e yakın bir puan, bunların neredeyse aynı yöne işaret ettiği anlamına gelir, bu da benzer içeriğe işaret eder.

Yerleştirmeler ve belirteçler arasındaki fark nedir?

Belirteç, bir modelin işlediği bir metin yığınıdır. Gömme, bir belirtecin, cümlenin veya belgenin anlamını temsil eden sayısal bir vektördür.

Bir yerleştirmenin kaç boyutu olmalıdır?

Modele bağlıdır ve yüzlerce ila birkaç bin arasında yaygındır. Daha fazlası daha fazla ayrıntı yakalayabilir ancak daha fazla depolama maliyetine neden olur; bu nedenle kullanım senaryonuzun neye ihtiyacı olduğunu test edin.

Gömmeleri kullanmak için bir vektör veritabanına ihtiyacım var mı?

Hayır. Bellekte küçük koleksiyonlar aranabilir. Vektör veritabanları daha büyük koleksiyonlar, sık güncellemeler veya filtreleme ihtiyaçlarıyla kullanışlı hale gelir.

Öğrenmeye devam et

Stack Quora ile çalışın

Test, WordPress veya SEO konusunda yardıma mı ihtiyacınız var?

Ekiplerin daha iyi yazılımlar sunmasına ve sitelerini büyütmesine yardımcı oluyoruz. Bize ne üzerinde çalıştığınızı söyleyin, biz de bir sonraki adım için net bir öneride bulunalım.

Okumaya devam et

Daha fazla kılavuz test, yapay zeka ve modern geliştirme

Bu makaleyi beğendiniz mi? Bir konu seçin ve doğrudan en yeni eğitimlerimize geçin.

Yapay zekâ

Yapay Zeka Halüsinasyonları Açıklandı: Dil Modelleri Neden İşleri Düzeltiyor ve Nasıl Azaltılabilir?

Yapay zeka halüsinasyonları açıkladı: ne olduklarını, dil modellerinin bunları neden ürettiğini, yaygın türlerini, temellendirme ve yönlendirmelerle…

Makaleyi okuyun →
DevOps

Açıklanan Ortam Değişkenleri: .env Dosyaları, Sırlar ve Yapılandırma Doğru Yapıldı

Çalıştırdığımız Python örnekleriyle açıklanan ortam değişkenleri: bunları okumak ve ayarlamak, neden her değerin bir dize olduğu, .env dosyaları, sü…

Makaleyi okuyun →
Yazılım geliştirme

API Hız Sınırlamasının Açıklaması: Algoritmalar, Başlıklar ve 429 Hatalarının Ele Alınması

API hızı sınırlaması, çalıştırdığımız bir simülasyonla açıklanmıştır: belirteç kümesi, sabit pencere, kayan pencere, 429 yanıt, hız sınırı başlıklar…

Makaleyi okuyun →
Test otomasyonu

Python'da alay etme: Unittest.mock, patch ve Testleri Yalan Yapan Hatalar

Unittest.mock ile Python'da alay etme, test edildi: Sahte ve dönüş_değeri, yan_etki, bir adın kullanıldığı yerde yama uygulama, spesifikasyon ve oto…

Makaleyi okuyun →
Yazılım testi

Kod Kapsamının Açıklaması: Hat ve Şube Kapsamı ve %100'ün Gerçek Anlamı

Kod kapsamı gerçek bir kapsama.py çalışmasıyla açıklanmıştır: hat, şube ve durum kapsamı, bir raporun okunması, %100 kapsamın neden hâlâ hataları ka…

Makaleyi okuyun →
Veritabanları ve SQL

SQL'de DELETE vs TRUNCATE vs DROP: Farklılıklar, Geri Alma ve Her Biri Ne Zaman Kullanılmalı

DELETE vs TRUNCATE vs DROP test edilmiş SQL ile açıklandı: her birinin neyi kaldırdığı, geri aldığı, tetiklediği, kimlik sıfırlaması, hızı ve Postgr…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL Görünümleri: Örneklerle Tuzakları Oluşturun, Kullanın ve Önleyin

Çalıştırdığımız sorgularla açıklanan SQL görünümleri: görünüm oluşturma, canlı sonuçlar, sütunları gizleme, performans, güncellenebilir ve gerçekleş…

Makaleyi okuyun →
Yazılım geliştirme

TypeScript Arayüzü ve Tür: Gerçek Farklılıklar, Derleyiciyle Test Edildi

TypeScript arayüzü ve türü, gerçek derleyiciyle kontrol edildi: her ikisinin de yapabileceği, yalnızca birinin yapabileceği, bildirim birleştirme, g…

Makaleyi okuyun →
Yazılım geliştirme

Python *args ve **kwargs'ın Açıklaması: Açık Örneklerle Esnek Fonksiyonlar

Python *args ve **kwargs çalıştırdığımız kodla açıklanmıştır: paketleme ve paketten çıkarma, parametre sırası, yalnızca anahtar kelime ve yalnızca k…

Makaleyi okuyun →
Yazılım geliştirme

Python Lambda İşlevleri: Söz Dizimi, Gerçek Kullanımlar ve Ne Zaman Kullanılmaması Gerektiği

Çalıştırdığımız kodla açıklanan Python lambda işlevleri: sözdizimi, anahtarla sıralama, harita ve filtre, kapatmalar, geç bağlama tuzağı ve normal b…

Makaleyi okuyun →
Yapay zekâ

Yapay Zeka Ajanları Nelerdir? Çalıştırabileceğiniz Basit Bir Aracı Döngüsüyle Nasıl Çalışırlar?

Yapay zeka ajanları nedir? Aracı döngüsüne, araçlara, belleğe ve korkuluklara ilişkin basit bir kılavuz, çalıştırdığımız küçük bir Python döngüsü, g…

Makaleyi okuyun →
DevOps

İzleme ve Gözlemlenebilirlik: Günlükler, Metrikler ve İzlerle Gerçek Fark

İzleme ve gözlemlenebilirliğin açıklanması: bilinen ve bilinmeyen arızalar, günlükler, ölçümler ve izler, ödeme olayının gözden geçirilmesi, altın s…

Makaleyi okuyun →
DevOps

Docker Birimleri ve Bağlama Bağlantıları: Konteyner Verilerini Doğru Şekilde Kalıcılaştırın

Docker birimleri ile bağlama bağlamaları arasındaki karşılaştırma açıklandı: kapsayıcı verilerinin neden kaybolduğu, adlandırılmış birimler, bağlama…

Makaleyi okuyun →
Test otomasyonu

TDD ve BDD: Temel Farklılıklar, Her İki Şekilde Geliştirilmiş Bir Özellik ve Her Birinin Ne Zaman Kullanılacağı

TDD ve BDD, her iki yönde de oluşturulmuş bir indirim özelliğiyle açıklandı: çalıştırdığımız kodla kırmızı-yeşil-refactor, Verilen-Ne Zaman-O Zaman …

Makaleyi okuyun →
Yazılım testi

Kullanıcı Kabul Testi (UAT): Süreç, Kontrol Listesi ve Gerçek Örnekler

Kullanıcı kabul testi açıklandı: bunu kimin yürüttüğü, QA'dan farkı, yedi adımlı bir süreç, bir UAT test senaryosu şablonu, bir kontrol listesi, otu…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL NULL Değerleri: IS NULL, COALESCE, NULLIF ve Kaçınılması Gereken Tuzaklar

SQL NULL değerleri, çalıştırdığımız sorgularla açıklandı: üç değerli mantık, IS NULL, COALESCE, NULLIF, toplamaların, birleştirmelerin ve sıralamanı…

Makaleyi okuyun →
Veritabanları ve SQL

SQL CASE WHEN İfadesi: Sözdizimi, Gerçek Örnekler ve Yaygın Hatalar

SQL CASE WHEN çalıştırdığımız sorgularla açıkladı: basit ve aranmış formlar, koşul sırası, SUM'lu pivotlar, COUNT hileleri, özel sıralama, güncellem…

Makaleyi okuyun →
Yazılım geliştirme

JWT Nedir? JSON Web Belirteçleri Bir Çalışma Örneğiyle Açıklanıyor

JWT nedir? JSON Web Tokens açıkladı: üç bölüm, çalıştırdığımız kodda oluşturulan ve üzerinde değişiklik yapılan bir token, JWT ile oturumlar, depola…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Olay Döngüsü Açıklaması: Örneklerle Çağrı Yığını, Mikro Görevler ve Zamanlayıcılar

JavaScript olay döngüsü çalıştırdığımız kodla açıklandı: çağrı yığını, görev ve mikro görev kuyrukları, setTimeout 0'ın neden anında olmadığı, engel…

Makaleyi okuyun →
Yazılım geliştirme

Python Jeneratörleri ve Verim Açıklaması: Gerçek Örneklerle Bellekten Tasarruf Edin

Python üreteçleri ve verim, çalıştırdığımız kodla açıklandı: nasıl duraklatılır ve devam ettirilir, ölçülen bellek tasarrufları, işlem hatları, sons…

Makaleyi okuyun →
Yapay zekâ

Gömmeler Nelerdir? Vektörler ve Kosinüs Benzerliği Basitçe Açıklandı

Gömmeler nedir? Vektörler, kosinüs benzerliği ve anlamsal aramaya ilişkin sade dilli bir kılavuz; çalıştırdığımız küçük bir örnek, yaygın kullanımla…

Makaleyi okuyun →
DevOps

Mavi-Yeşil ve Kanarya Konuşlandırılması: Farklılıklar, Takaslar ve Nasıl Seçilir

Mavi-yeşil ve kanarya konuşlandırması açıklandı: her birinin nasıl çalıştığı, maliyet, risk ve geri alma, test ettiğimiz istikrarlı kullanıcı grubu,…

Makaleyi okuyun →
Yazılım geliştirme

Git merge vs rebase: farklar, örnekler ve hangisi ne zaman kullanılır

Git merge vs rebase; gerçek log çıktısı, karşılaştırma tablosu, rebase'in altın kuralı ve güvenli bir ekip iş akışıyla anlatılıyor.

Makaleyi okuyun →
Yazılım geliştirme

Python Liste Üreteci (List Comprehension): Sözdizimi, Örnekler ve Kaçınılacak Durumlar

Python list comprehension anlatımı: sözdizimi, filtreleme, if-else, iç içe döngüler, ölçülmüş süreler ve düz for döngüsünün daha iyi olduğu durumlar.

Makaleyi okuyun →
Veritabanları ve SQL

SQL JOIN Örneklerle Açıklama (Inner, Left, Right, Full)

SQL JOIN'leri örnek tablolar ve sorgularla adım adım öğrenin: INNER, LEFT, RIGHT, FULL, CROSS ve SELF; yaygın hatalar ve performans ipuçları.

Makaleyi okuyun →