MySQL veritabanı dizin türü/oluşturma/kullanım kombinasyonu MySQL'de ALTER ifadesi kullanımı

MySQLdizin türü/oluştur/açılan değişikliği kullanMySQLkomut ifadesi kullanımı

MySQL dizinleri

MySQL indeksinin kurulması, MySQL'in verimli çalışması için çok önemlidir ve indeks, MySQL'in alma hızını büyük ölçüde artırabilir.

Örneğin, makul tasarım ve indeks kullanımına sahip MySQL bir Lamborghini ise, indeksleri ve indeksleri olmayan MySQL bir insan üç tekerlekli bisikletidir.

Dizin, tek sütunlu dizin ve bileşik dizin olarak ikiye ayrılır.Tek sütunlu dizin, yani bir dizin yalnızca tek bir sütun içerir, bir tablonun birden çok tek sütunlu dizinleri olabilir, ancak bu bir bileşik dizin değildir.Bileşik dizin, yani bir dizin birden çok sütun içerir.

Bir dizin oluştururken, dizinin SQL sorgusuna uygulanan bir koşul olduğundan (genellikle WHERE yan tümcesinin bir koşulu olarak) emin olmanız gerekir.

Aslında dizin de bir tablodur, tablo birincil anahtarı ve dizin alanlarını kaydeder ve varlık tablosunun kayıtlarına işaret eder.

Yukarıda indeks kullanmanın faydalarından bahsediliyor ancak indekslerin aşırı kullanımı kötüye kullanıma yol açacaktır.Bu nedenle, indeksin de eksiklikleri olacaktır: indeks, sorgulama hızını büyük ölçüde artırsa da, tablonun INSERT, UPDATE ve DELETE gibi tablo güncelleme hızını azaltacaktır.Çünkü tabloyu güncellerken MySQL sadece verileri değil aynı zamanda indeks dosyasını da kaydeder.

Disk alanı tüketen bir dizin dosyasını indeksleme.


Normal indeks

dizin oluştur

Bu en temel dizindir, herhangi bir kısıtlaması yoktur.Aşağıdaki şekillerde oluşturulabilir:

CREATE INDEX indexName ON mytable(username(length)); 

CHAR ve VARCHAR türleri için uzunluk, alanın gerçek uzunluğundan daha az olabilir, BLOB ve TEXT türleri için uzunluk belirtilmelidir.

Tablo yapısını değiştir (dizin ekle)

ALTER table tableName ADD INDEX indexName(columnName)

Tabloyu oluştururken doğrudan belirtin

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
INDEX [indexName] (username(length))  
 
);  

Dizin bırakmak için sözdizimi

DROP INDEX [indexName] ON mytable; 

Benzersiz dizin

Önceki sıradan dizine benzer, fark şudur: dizin sütununun değeri benzersiz olmalıdır, ancak boş değerlere izin verilir.Bileşik indeks durumunda, sütun değerlerinin kombinasyonu benzersiz olmalıdır.Aşağıdaki şekillerde oluşturulabilir:

dizin oluştur

CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

Tablo yapısını değiştir

ALTER table mytable ADD UNIQUE [indexName] (username(length))

Tabloyu oluştururken doğrudan belirtin

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
UNIQUE [indexName] (username(length))  
 
);  

ALTER komutunu kullanarak dizinleri ekleyin ve kaldırın

Bir veri tablosuna dizin eklemenin dört yolu vardır:

  • ALTER TABLE tbl_name BİRİNCİL ANAHTAR EKLE (sütun_listesi): Bu ifade, bir birincil anahtar ekler; bu, dizin değerlerinin benzersiz olması gerektiği ve NULL olamayacağı anlamına gelir.
  • ALTER TABLE tbl_name EŞSİZ dizin_adı EKLE (sütun_listesi): Bu ifade tarafından oluşturulan dizinin değeri benzersiz olmalıdır (NULL dışında, NULL birden çok kez görünebilir).
  • ALTER TABLE tbl_name INDEX EKLE dizin_adı (sütun_listesi): Normal bir dizin ekleyin, dizin değeri birden çok kez görünebilir.
  • ALTER TABLE tbl_name FULLTEXT EKLE dizin_adı (sütun_listesi):İfade, tam metin dizinleme için dizini FULLTEXT olarak belirtir.

Aşağıdaki örnek, bir tabloya dizin eklemektir.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Dizinleri bırakmak için ALTER komutundaki DROP yan tümcesini de kullanabilirsiniz.Dizini bırakmak için aşağıdaki örneği deneyin:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

ALTER komutunu kullanarak birincil anahtarları ekleyin ve kaldırın

Birincil anahtar yalnızca bir sütun üzerinde hareket edebilir.Birincil anahtar dizini eklerken, birincil anahtarın varsayılan olarak NULL (BOŞ DEĞİL) olmadığından emin olmanız gerekir.Örnekler aşağıdaki gibidir:

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

ALTER komutuyla bir birincil anahtarı da silebilirsiniz:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Birincil anahtarı bırakırken yalnızca PRIMARY KEY'i belirtmeniz gerekir, ancak bir dizini bırakırken dizin adını bilmeniz gerekir.


dizin bilgilerini göster

İlgili indeks bilgilerini tabloda listelemek için SHOW INDEX komutunu kullanabilirsiniz.Çıktı bilgileri \G eklenerek biçimlendirilebilir.

Aşağıdaki örnekleri deneyin:

mysql> SHOW INDEX FROM table_name; \G
........

Umut Chen Weiliang Blogu ( https://www.chenweiliang.com/ ) "MySQL Database Index Type/Create/Use Combination MySQL'de ALTER İfadesi Kullanımı" paylaştı, bu da işinize yarayacak.

Bu makalenin bağlantısını paylaşmaya hoş geldiniz:https://www.chenweiliang.com/cwl-496.html

En son güncellemeleri almak için Chen Weiliang'ın blogunun Telegram kanalına hoş geldiniz!

🔔 Kanalın üst dizinindeki değerli "ChatGPT İçerik Pazarlama Yapay Zeka Aracı Kullanım Kılavuzunu" alan ilk kişi olun! 🌟
📚 Bu rehber çok büyük değer içeriyor, 🌟Bu nadir bir fırsat, kaçırmayın! ⏰⌛💨
İsterseniz paylaşın ve beğenin!
Paylaşımlarınız ve beğenileriniz bizim sürekli motivasyonumuz!

 

发表 评论

E-posta hesabınız yayımlanmayacak. 必填 项 已 用 * 标注

yukarı kaydır