Apakah Perbezaan Antara `INDEX` dan `KEY` dalam MySQL?

Susan Sarandon
Lepaskan: 2024-11-24 22:37:10
asal
749 orang telah melayarinya

What's the Difference Between `INDEX` and `KEY` in MySQL?

Perbezaan antara INDEX dan KEY dalam MySQL

Dalam MySQL, INDEX dan KEY adalah sinonim yang digunakan untuk meningkatkan prestasi pertanyaan, mereka tidak mempunyai intipati perbezaannya. Walau bagaimanapun, atas sebab keserasian ISO SQL, menggunakan INDEX lebih diutamakan.

Penerangan tentang CREATE TABLE dalam manual MySQL menyatakan: "KEY biasanya sinonim untuk INDEX. Apabila dinyatakan dalam takrifan lajur, atribut kunci utama PRIMARY KEY juga boleh ditentukan sebagai KEY. Ini adalah untuk keserasian dengan sistem pangkalan data lain Dilaksanakan ”

Sebagai contoh, tiga CREATE JADUAL pernyataan adalah setara dan menghasilkan objek jadual yang sama dalam pangkalan data:

CREATE TABLE orders1 (
    order_id int PRIMARY KEY
);

CREATE TABLE orders2 (
    order_id int KEY
);

CREATE TABLE orders3 (
    order_id int NOT NULL,

    PRIMARY KEY ( order_id )
);
Salin selepas log masuk

Sebaliknya, dua pernyataan berikut adalah setara tetapi berbeza daripada tiga pernyataan di atas:

CREATE TABLE orders4 (
    order_id int NOT NULL,

    KEY ( order_id )
);

CREATE TABLE orders5 (
    order_id int NOT NULL,

    INDEX ( order_id )
);
Salin selepas log masuk

Ini kerana dalam kenyataan ini, KEY dan INDEX adalah sinonim bagi INDEX, bukan KEY PRIMER. Oleh itu, ahli KEY ( order_id ) dan INDEX ( order_id ) tidak mentakrifkan kunci utama, mereka hanya mentakrifkan objek indeks generik, yang berbeza sepenuhnya daripada KEY (kerana ia tidak mengenal pasti baris secara unik).

Anda boleh mengesahkan ini dengan menjalankan perintah SHOW CREATE TABLE1...5:

CREATE TABLE orders1 (
    order_id int NOT NULL,
    PRIMARY KEY ( order_id )
)


CREATE TABLE orders2 (
    order_id int NOT NULL,
    PRIMARY KEY ( order_id )
)


CREATE TABLE orders3 (
    order_id int NOT NULL,
    PRIMARY KEY ( order_id )
)


CREATE TABLE orders4 (
    order_id int NOT NULL,
    KEY ( order_id )
)


CREATE TABLE orders5 (
    order_id int NOT NULL,
    KEY ( order_id )
)
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah Perbezaan Antara `INDEX` dan `KEY` dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan