Latest web development tutorials

MySQL Indeks

MySQL MySQL membangun indeks untuk operasi yang efisien sangat penting, indeks dapat sangat meningkatkan kecepatan pengambilan MySQL.

Sebagai contoh, jika sebuah desain yang wajar dan menggunakan indeks MySQL adalah Lamborghini, maka tidak ada desain dan penggunaan indeks MySQL adalah sepeda roda tiga.

Indeks poin indeks terpisah dan indeks kombinasi. indeks yang terpisah yang berisi hanya indeks kolom, tabel dapat memiliki beberapa indeks yang terpisah, tapi ini bukan indeks komposit. Indeks komposit, yaitu kabel yang terdiri dari beberapa kolom.

Ketika Anda membuat indeks, Anda perlu memastikan bahwa indeks digunakan dalam kondisi query SQL (umumnya sebagai syarat klausa WHERE).

Bahkan, indeks juga meja yang memegang kunci dan indeks bidang utama, dan poin untuk merekam tabel entitas.

Di atas berbicara tentang manfaat menggunakan indeks, tetapi penggunaan yang berlebihan dari indeks akan mengakibatkan penyalahgunaan. Oleh karena itu, indeks juga memiliki kelemahan: Sementara indeks sangat meningkat kecepatan query, sementara itu akan mengurangi kecepatan memperbarui tabel, seperti meja INSERT, UPDATE, dan DELETE. Karena tabel update, MySQL tidak hanya untuk menyimpan data, tetapi juga menyimpan tentang file indeks.

Pengindeksan memakan ruang disk pada file indeks.


indeks Umum

Buat Indeks

Ini adalah indeks dasar, tidak memiliki batasan apapun. Hal ini telah menciptakan cara-cara berikut:

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

Jika itu adalah CHAR, jenis VARCHAR, panjang bisa kurang dari panjang sebenarnya lapangan, jika BLOB dan TEXT jenis, Anda harus menentukan panjang.

Memodifikasi Struktur Tabel

ALTER mytable ADD INDEX [indexName] ON (username(length)) 

Ketika Anda membuat tabel langsung tentukan

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

Hapus sintaks indeks

DROP INDEX [indexName] ON mytable; 

Indeks unik

Hal ini mirip dengan indeks umum sebelumnya, hal ini berbeda: nilai kolom indeks harus unik, tetapi memungkinkan bebas nilai. Jika itu adalah kombinasi dari indeks, nilai kolom harus unik. Hal ini telah menciptakan cara-cara berikut:

Buat Indeks

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

Memodifikasi Struktur Tabel

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

Ketika Anda membuat tabel langsung tentukan

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

Gunakan perintah ALTER untuk menambah dan menghapus indeks

Ada empat cara untuk menambahkan tabel data indeks:

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list ): Pernyataan ini menambahkan kunci utama, yang berarti bahwa nilai indeks harus unik dan tidak dapat NULL.

  • ALTER TABLE tbl_name ADD nama_index UNIK (column_list ): Pernyataan ini menciptakan nilai indeks harus unik (kecuali luar NULL, NULL dapat muncul beberapa kali).
  • ALTER TABLE tbl_name ADD INDEX nama_index (column_list ): menambahkan indeks normal, nilai indeks dapat terjadi beberapa kali.
  • ALTER TABLE tbl_name ADD fulltext nama_index (column_list ): Pernyataan ini menetapkan indeks fulltext, untuk pengindeksan teks lengkap.

Contoh berikut menambahkan indeks dalam tabel.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Anda juga dapat menggunakan klausa DROP untuk menghapus indeks dalam perintah ALTER. Coba contoh berikut untuk menghapus indeks:

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

Gunakan perintah ALTER untuk menambah dan menghapus kunci utama

Hanya bertindak pada kolom kunci utama, ketika Anda menambahkan indeks kunci utama, Anda perlu memastikan bahwa kunci utama default tidak kosong (NOT NULL). Contohnya adalah sebagai berikut:

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

Anda juga dapat menggunakan perintah ALTER untuk menghapus kunci utama:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Hanya menentukan PRIMARY KEY Hapus waktu yang ditentukan, tetapi ketika Anda menghapus indeks, Anda harus tahu nama indeks.


Informasi Indeks tampilan

Anda dapat menggunakan perintah SHOW INDEX ke daftar informasi indeks tabel. Dengan menambahkan \ G untuk memformat output.

Coba contoh berikut:

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