Rumah > Soal Jawab > teks badan
Seperti yang kita semua tahu, innodb hanya menyimpan nilai kunci primer dalam indeks sekunder, yang bermaksud kita perlu melintasi pepohon indeks B+ berkelompok sekali lagi untuk mendapatkan rekod baris.
Mengapa tidak menyimpan penunjuk baris terus dalam indeks kedua untuk mengurangkan kerja carian tambahan?
P粉4690907532023-09-12 16:06:28
Tiada "penunjuk baris". Lajur PRMARY KEY
mempunyai fungsi untuk mencari baris dalam BTree data.
Sudah tentu, carian melalui PK boleh dikatakan lebih perlahan daripada "penunjuk baris". Tetapi kemas kini, pemadaman, pemisahan blok, dll. semuanya dikendalikan secara automatik. (Lihat ulasan Bill.) Ini menjadikan kod lebih mudah. Dan, dalam beberapa kes, lebih cepat.
Contoh mudah yang lebih pantas: Diberi
PRIMARY KEY(id), INDEX(foo) -- effectively (foo, id), as discussed above SELECT id FROM tbl WHERE foo = 123;
Dalam contoh ini, BTree yang diindeks mempunyai jawapan lengkap; tidak perlu mengakses data BTree. Oleh itu, indeks ini dipanggil "penutup" ini SELECT
.