Saya tahu cara menggunakan INDEX seperti dalam kode berikut. Dan saya tahu cara menggunakan kunci asing dan kunci primer .
CREATE TABLE tasks (
task_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
parent_id INT UNSIGNED NOT NULL DEFAULT 0,
task VARCHAR(100) NOT NULL,
date_added TIMESTAMP NOT NULL,
date_completed TIMESTAMP,
PRIMARY KEY (task_id),
INDEX parent (parent_id),
....
Namun saya menemukan kode menggunakan KEY bukannya INDEX sebagai berikut.
...
KEY order_date (order_date)
...
Saya tidak dapat menemukan penjelasan di halaman resmi MySQL. Adakah yang bisa memberi tahu saya apa perbedaan antara KUNCI dan INDEKS?
Satu-satunya perbedaan yang saya lihat adalah ketika saya menggunakan KEY ...
, saya perlu mengulang kata, misalnya
KEY order_date (order_date)
.
KEY keyname (column_name)
ketika saya membuat tabel denganINDEX keyname (column_name)
. Fakta bahwa itu adalah sinonim menjelaskannya dengan sempurna.Berikut ini deskripsi yang bagus tentang "perbedaan":
sumber
Disebut sebagai sinonim
INDEX
dalam dokumen 'buat tabel': Manual Referensi MySQL 5.5 :: 13 Sintaks Pernyataan SQL :: 13.1 Pernyataan Definisi Data :: 13.1.17 Sintaks CREATE TABLENo sudah mengutip bagian dan menautkan bantuan untuk 5.1.
Suka
PRIMARY KEY
membuat kunci utama dan indeks untuk Anda, hanyaKEY
membuat indeks.sumber
Kunci adalah bidang khusus yang memainkan peran yang sangat spesifik dalam sebuah tabel, dan jenis kunci menentukan tujuannya di dalam tabel.
Indeks adalah struktur yang disediakan RDBMS (sistem manajemen basis data) untuk meningkatkan pemrosesan data. Indeks tidak ada hubungannya dengan struktur database logis.
BEGITU...
Kunci adalah struktur logis yang Anda gunakan untuk mengidentifikasi catatan dalam tabel dan indeks adalah struktur fisik yang Anda gunakan untuk mengoptimalkan pemrosesan data.
Sumber: Desain Basis Data untuk Mere Mortal
Penulis: Michael Hernandez
sumber
Kunci adalah sekumpulan kolom atau ekspresi tempat kami membuat indeks.
Sementara indeks adalah struktur yang disimpan dalam database, kunci adalah konsep logis.
Indeks membantu kami dalam cepat mengakses catatan, sedangkan kunci hanya mengidentifikasi catatan secara unik.
Setiap tabel tentu memiliki kunci, tetapi memiliki indeks tidak wajib.
Periksa di https://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CNCPT721
sumber