tipe indéks database MySQL / jieun / pamakéan kombinasi ALTER pamakéan pernyataan di MySQL

MySQLtipe indéks / nyieun / pamakéan combo ngarobah dinaMySQLpamakéan pernyataan paréntah

indéks MySQL

Ngadegkeun indéks MySQL pohara penting pikeun operasi efisien MySQL, sarta indéks bisa greatly ngaronjatkeun laju dimeunangkeun MySQL.

Salaku conto, upami MySQL anu dirancang sareng diindeks leres mangrupikeun Lamborghini, maka MySQL tanpa desain anu diindeks mangrupikeun beca manusa.

Indéks dibagi kana indéks kolom tunggal sareng indéks komposit.Indéks kolom tunggal, nyaéta, indéks ngan ukur ngandung hiji kolom, méja tiasa gaduh sababaraha indéks kolom tunggal, tapi ieu sanés indéks komposit.Indéks komposit, nyaéta, indéks ngandung sababaraha kolom.

Nalika nyieun indéks, anjeun kudu mastikeun yén indéks mangrupa kaayaan anu lumaku pikeun query SQL (biasana salaku kaayaan klausa WHERE).

Kanyataanna, indéks oge tabel, tabél nyimpen konci primér sarta widang indéks, sarta nunjuk ka rékaman tina tabel éntitas.

Di luhur ngobrol ngeunaan mangpaat ngagunakeun indéks, tapi pamakéan kaleuleuwihan indéks bakal ngakibatkeun nyiksa.Ku alatan éta, indéks ogé bakal boga shortcomings na: sanajan indéks greatly ngaronjatkeun kagancangan query, éta bakal ngurangan kagancangan ngamutahirkeun tabel, kayaning INSERT, UPDATE jeung DELETE tabel.Kusabab nalika ngamutahirkeun tabel, MySQL henteu ngan nyimpen data, tapi ogé ngahemat file indéks.

Indexing hiji file indéks nu meakeun spasi disk.


indéks normal

nyieun indéks

Ieu mangrupikeun indéks anu paling dasar, éta henteu aya larangan.Éta tiasa diciptakeun ku cara-cara ieu:

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

Pikeun jinis CHAR sareng VARCHAR, panjangna tiasa langkung handap tina panjang lapangan saleresna; pikeun jinis BLOB sareng TEKS, panjangna kedah disaluyukeun.

Robah struktur tabel (tambahkeun indéks)

ALTER table tableName ADD INDEX indexName(columnName)

Sebutkeun langsung nalika nyieun tabél

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

Sintaksis pikeun leupaskeun indéks

DROP INDEX [indexName] ON mytable; 

indéks unik

Éta sami sareng indéks biasa sateuacana, bédana nyaéta: nilai kolom indéks kedah unik, tapi nilai nol diidinan.Dina kasus indéks komposit, kombinasi nilai kolom kedah unik.Éta tiasa diciptakeun ku cara-cara ieu:

nyieun indéks

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

Ngarobah struktur tabel

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

Sebutkeun langsung nalika nyieun tabél

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

Tambihkeun sareng cabut indéks nganggo paréntah ALTER

Aya opat cara pikeun nambahkeun indéks kana tabel data:

  • ALTER TABLE tbl_name TAMBAHAN KUNCI UTAMA (column_list): Pernyataan ieu nambihan konci primér, anu hartosna nilai indéks kedah unik sareng henteu tiasa NULL.
  • ALTER TABLE tbl_name TAMBAHAN UNIK index_name (column_list): Nilai indéks dijieun ku pernyataan ieu kudu unik (iwal NULL, NULL bisa muncul sababaraha kali).
  • ALTER TABLE tbl_name TAMBAHKAN INDEKS index_name (column_list): Tambahkeun indéks normal, nilai indéks bisa muncul sababaraha kali.
  • ALTER TABLE tbl_name TAMBAHAN FULLTEXT index_name (column_list):Pernyataan éta netepkeun indéks salaku FULLTEXT pikeun indéks téks lengkep.

Conto di handap ieu nyaéta pikeun nambihan indéks kana méja.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Anjeun ogé tiasa nganggo klausa DROP dina paréntah ALTER pikeun nurunkeun indéks.Coba conto di handap ieu pikeun leupaskeun indéks:

mysql> ALTER TABLE testalter_tbl DROP INDEX c;

Tambihkeun sareng cabut konci primér nganggo paréntah ALTER

Konci primér ngan ukur tiasa dianggo dina hiji kolom. Nalika nambihan indéks konci primér, anjeun kedah mastikeun yén konci primér henteu NULL sacara standar (NOT NULL).Contona nyaéta kieu:

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

Anjeun ogé tiasa ngahapus konci primér nganggo paréntah ALTER:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Anjeun ngan perlu nangtukeun KUNCI PRIMARY nalika muterna konci primér, tapi lamun muterna hiji indéks, anjeun kudu nyaho ngaran indéks.


némbongkeun informasi indéks

Anjeun tiasa nganggo paréntah SHOW INDEX pikeun daptar inpormasi indéks anu relevan dina tabél.Inpormasi kaluaran tiasa diformat ku cara nambihan \G.

Coba conto di handap ieu:

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

Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) dibagikeun "MySQL Database Indéks Tipe / Jieun / Paké Kombinasi ALTER Pernyataan Dianggo dina MySQL", nu mantuan pikeun anjeun.

Wilujeng ngabagikeun tautan artikel ieu:https://www.chenweiliang.com/cwl-496.html

Wilujeng sumping di saluran Telegram blog Chen Weiliang pikeun kéngingkeun apdet panganyarna!

🔔 Janten anu pangheulana kéngingkeun "Panduan Penggunaan Alat AI Pemasaran Konten ChatGPT" dina diréktori luhur saluran! 🌟
📚 Pituduh ieu ngandung nilai anu ageung, 🌟Ieu mangrupikeun kasempetan anu jarang, tong kantun! ⏰⌛💨
Bagikeun sareng suka upami anjeun resep!
Bagikeun sareng resep anjeun mangrupikeun motivasi kontinyu kami!

 

koméntar

Alamat email anjeun moal diterbitkeun. Widang anu diperyogikeun dianggo * Labél

gulung ka luhur