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 ) );
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 ) );
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 ) )
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!