MySQL'de Dizin Oluşturun: MySQL Dizin Eğitimi [222]
Yayınlanan: 2021-01-01Bir Veri Bilimcisi veya bir programcı, büyük miktarda veriyle çalışmak zorunda kalacak ve daha hızlı yürütme için bu verilerle verimli bir şekilde başa çıkabilmelidir. Ayrıca, verilerin nasıl düzenlendiğini ve ihtiyaç duyulan belirli verilere kolayca erişmek için en hızlı yöntemleri bilmeleri gerekir.
MySQL, web veritabanları, e-ticaret uygulamaları, sosyal medya vb. gibi çeşitli sektörlerde uygulamaları olan ilişkisel bir veritabanı yönetim sistemi olduğundan veri bilimcilerin MySQL ile ilgili, bir tanesi indeksler olan tüm teknikleri bilmeleri gerekir. Makale, MySQL'de Dizin'in nasıl oluşturulacağını açıklar.
İçindekiler
İndeks nedir?
MySQL'de İndeksler, verileri organize bir sıralı şekilde sıralamak ve verileri verimli ve hızlı bir şekilde almak için kullanılır. Verileri filtrelemek için kullanılacak bir veya daha fazla sütun kullanılarak oluşturulurlar. Dizinler, birincil veya dizin alanını ve ana tablodaki her kayda bir işaretçi tutan bir tablo türüdür.
Daha iyi anlaşılması için örnek olarak bir kitap dizini kullanılabilir. Bir kitabın tüm sayfaları arasında dolaşarak bir sayfa aramak yerine, kişinin aradığı sayfayı bulmak için kitap dizini kontrol edilebilir.
Çoğu veritabanı sisteminde yüksek ve hızlı performans gereklidir. Birçok işletme, daha hızlı veri alımı ve manipülasyonu için donanıma büyük meblağlarda para yatırır. Ancak veritabanı optimize edilerek maliyetler düşürülebilir.
Yanıt süresi genellikle daha uzundur çünkü kayıtlar rasgele depolanır ve arama sorgularının gerekli verileri depolanan tüm kayıtlar arasında dolaşarak bulması gerekir. Dizinler bu aramayı daha kolay ve hızlı hale getirir.

Okuyun: SQL'de Sütun adını yeniden adlandırın
Dizin Oluştur
Aşağıdaki temel sözdizimini kullanarak bir tabloda MySQL'de dizin oluşturabilirsiniz .
CREATE INDEX dizin_adı tablo_adı (sütun_adı);
Ayrıca bir tabloda benzersiz bir dizin oluşturabilirsiniz. Bu, adın benzersiz olduğu ve herhangi iki satırın aynı ada sahip olamayacağı anlamına gelir. Bunun için aşağıdaki sözdizimi kullanılabilir.
tablo_adı (sütun_adı);
Bir sütun için ikincil bir dizin oluşturulursa, MySQL değerleri B-Tree ve Hash gibi ayrı bir veri yapısında saklar. MySQL'de, sütunlar dize sütunlarıysa, sözdizimini kullanarak dize sütununun sütun değerlerinin önde gelen kısmı için bir dizin oluşturabilirsiniz:
sütun_adı(uzunluk)
Tablo oluşturulduğunda sütun öneki anahtar bölümünü oluşturmak için aşağıdaki sözdizimi kullanılabilir:
TABLO OLUŞTUR tablo_adı(
sütun_listesi,
İNDEKS(sütun_adı(uzunluk))
);
Ve mevcut bir tabloya bir dizin eklemek için:
CREATE INDEX dizin_adı AÇIK tablo_adı (sütun_adı(uzunluk));
Buradaki uzunluk, CHAR, VARCHAR ve TEXT gibi ikili olmayan bir dize türüyse karakter sayısı ve BINARY, VARBINARY ve BLOB gibi ikili dize türüyse bayt sayısıdır. MySQL'de CHAR, VARCHAR, BINARY ve VARBINARY sütunları için sütun öneki anahtar parçaları da oluşturabilirsiniz. BLOB ve METİN sütunları için dizinler oluşturduysanız, sütun öneki anahtar kısımlarını belirtmeniz gerekir.
Yalnızca InnoDB ve MyISAM tabloları için desteklenen FULLTEXT dizinleri olması durumunda, yalnızca CHAR, VARCHAR ve TEXT sütunlarını içerebilirler. Sütun önek indekslemeyi desteklemez ve herhangi bir önek uzunluğu belirtilirse yoksayılır.
Okumalısınız: SQL Proje Fikirleri
Dizin eklemek veya bırakmak için tabloları değiştirme
Bir tabloya dizin eklemek için kullanılabilecek dört tür ifade vardır:
- Birincil anahtar eklemek için:
ALTER TABLE tablo_adı BİRİNCİL ANAHTAR EKLE (sütun_listesi);

Buradaki indekslenmiş değerler benzersiz olmalı ve NULL olamaz.
- Benzersiz değerlere sahip bir dizin için:
ALTER TABLE tablo_adı EKLE BENZERSİZ dizin_adı (sütun_listesi);
Değerler, birden çok kez görünebilen NULL dışında benzersiz olmalıdır.
- Sıradan bir dizin eklemek için:
ALTER TABLE tablo_adı EKLE INDEX dizin_adı (sütun_listesi);
Burada değerler birden fazla görünebilir.
- Özel FULLTEXT dizini oluşturmak için:
ALTER TABLE tablo_adı ADD FULLTEXT dizin_adı (sütun_listesi);
FULLTEXT dizini, metin arama amacıyla kullanılabilir.
Mevcut tablolarda
Mevcut herhangi bir tabloya dizin eklemek için aşağıdaki sözdizimi kullanılabilir:
ALTER TABLE tablo_adı İNDEKS EKLE (indeks_adı);
Bir tablodaki bir dizini silmek için DROP INDEX ifadesi kullanılır:
ALTER TABLE tablo_adı DROP INDEX (index_name);
Dizin Bilgilerini Görüntüle
Herhangi bir tabloyla ilişkili tüm dizinleri listelemek için SHOW INDEX komutu kullanılır.
tablo_adı\G'DEN DİZİNİ GÖSTER
Listeyi dikey biçimde oluşturmak için '\G' kullanılır, bu uzun satır sarmayı önler.
Ayrıca Okuyun: SQL Mülakat Soruları ve Cevapları
Azalan Endeksler
InnoDB, dizin azalan bir dizin olduğunda girişleri azalan düzende saklayabilir. Yani sorguda azalan sıra istendiğinde, optimizer bu indeksi seçer. Bu, ORDER BY yan tümceleri olan sorgular için daha verimlidir. Bunlar yalnızca InnoDB depolama motoru tarafından desteklenir.
Azalan dizinler oluşturma veya ekleme sözdizimi, yukarıda kullanılan sözdizimlerini değiştirme veya oluşturma gibidir.
ALTER TABLE tablo_adı ADD dizin_adı (sütun1_adı azalan, sütun2_adı artan);
CREATE INDEX dizin_adı AÇIK tablo_adı (sütun1_adı azalan, sütun2_adı artan);
Görünmez İndeksler
Dizinleri sorgu iyileştirici için kullanılamaz olarak işaretlemek için görünmez dizinler kullanılabilir. MySQL, dizinle ilişkili sütunlardaki veriler değiştiğinde görünmez dizinleri günceller. Dizinler varsayılan olarak görünürdür ve onları görünmez yapmak için, oluşturma sırasında veya ALTER TABLE komutunu kullanarak görünürlüğü açıkça bildirmeniz gerekir.
Görünmez bir dizin oluşturmak için aşağıdaki sözdizimi kullanılır:
CREATE INDEX dizin_adı AÇIK tablo_adı (c1, c2…) GÖRÜNMEZ;
Mevcut dizinlerin görünürlüğünü değiştirmek için aşağıdaki sözdizimi kullanılır:
ALTER TABLE tablo_adı ALTER INDEX dizin_adı [GÖRÜNÜR | GÖRÜNMEZ];

Dünyanın En İyi Üniversitelerinden Online Yazılım Geliştirme Kurslarına Kaydolun . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Çözüm
MySQL arama sorgularının performansı, Dizinler kullanılarak geliştirilebilir. Bunlar, bir tablo oluşturulduğunda tanımlanabilir veya tablo zaten oluşturulmuşsa daha sonra eklenebilir.
Bu makale, bir indeksin ne olduğu ve neden kullanıldığı hakkında kısa bir açıklama yaptı. Bir sonraki bölüm MySQL'de nasıl indeks oluşturulacağını, mevcut bir tabloya nasıl eklenebileceğini ve benzersiz bir indeksin nasıl oluşturulacağını açıklar.
Tabloları değiştirmek ve bir dizin oluşturmak veya bırakmak için farklı komutlar, dizin bilgilerinin görüntülenmesiyle birlikte açıklanmıştır. Azalan ve görünmez indeksler de kısaca açıklanmıştır.
Sonuç olarak, bu makalede bahsedilen tüm veritabanlarını öğrenmek ve uygulamalı pratik yapmak deneyiminize katkıda bulunacaktır. Kurs genel bakışını, öğrenimi ve bununla ilgili iş fırsatlarını gözden geçirin - upGrad gibi platformlar, Executive PG Programı Tam Yığın Geliştirmede IIIT-B gibi oldukça tanınmış enstitüler tarafından tasarlanan güçlü kurslar sunar.
