INT vs. VARCHAR Primary Keys: Mythbusting Performance concerns
Pilihan antara kunci utama INT dan VARCHAR dalam MySQL telah lama diperdebatkan, terutamanya berkenaan senarai rujukan. Walaupun INT ialah pilihan tradisional, VARCHAR semakin popular kerana keupayaannya untuk menyampaikan maklumat secara langsung, yang berpotensi mengurangkan keperluan untuk MENYERTAI.
Artikel ini bertujuan untuk menyiasat implikasi prestasi penggunaan kunci utama INT lwn. VARCHAR dalam kes penggunaan tertentu: senarai rujukan seperti negeri dan kod negara AS.
Tanda Aras Keputusan
Untuk menilai perbezaan prestasi, satu siri penanda aras telah dijalankan menggunakan persediaan yang terdiri daripada:
Dua set jadual telah dicipta: jadual INT dan jadual VARCHAR, masing-masing diindeks dan tidak diindeks. Jadual tersebut kemudiannya diisi dengan 10 juta baris dan pertanyaan penanda aras telah dilaksanakan pada setiap jadual untuk mengukur masa yang diperlukan untuk mendapatkan baris tertentu.
Masa Pelaksanaan Pertanyaan Penanda Aras
Masa pelaksanaan pertanyaan penanda aras adalah seperti berikut:
Analisis
Keputusan menunjukkan bahawa prestasi antara kunci utama INT dan VARCHAR adalah minimum untuk senarai rujukan. Masa pelaksanaan pertanyaan penanda aras berada dalam beberapa ratus milisaat antara satu sama lain, tidak kira sama ada kunci diindeks atau tidak.
Ini menunjukkan bahawa faedah prestasi mengurangkan JOIN menggunakan kunci utama VARCHAR diimbangi oleh tambahan overhed menyimpan panjang berubah-ubah data.
Kesimpulan
Berdasarkan hasil penanda aras, dapat disimpulkan bahawa, untuk senarai rujukan seperti negeri dan kod negara AS, pilihan antara INT dan VARCHAR utama kunci adalah terutamanya soal keutamaan dan bukannya prestasi. Perbezaan prestasi boleh diabaikan dan faktor lain, seperti ketekalan data dan kebolehskalaan masa hadapan, mungkin mempengaruhi keputusan.
Atas ialah kandungan terperinci Kunci Utama INT atau VARCHAR untuk Senarai Rujukan: Adakah Prestasi Sangat Penting?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!