Itu tergantung pada indeks. Jika kedua kolom memiliki indeks yang disetel, Anda harus mentransmisikan ke int , karena hanya perlu membandingkan 4 byte. Namun, jika hanya varchar kolom diindeks, dilemparkan ke varchar .
Pada akhirnya, Anda harus memiliki permintaan explain ed, untuk melihat indeks apa yang digunakan, dan lakukan transmisi yang sesuai.
Jika tidak ada indeks yang disetel, transmisikan ke int adalah pendekatan yang lebih baik secara umum. Namun, jika tidak ada kumpulan indeks, itu tidak masalah, Anda akan menghemat lebih banyak waktu dengan mengindeks daripada dengan memilih cara yang benar untuk mentransmisikan. Kecuali, sekali lagi, mejanya kecil. Kalau begitu, itu juga tidak masalah.
Faktanya, kita harus memperhitungkan tidak hanya biaya untuk perbandingan, tetapi juga untuk casting:Casting int ke varchar sedikit lebih cepat daripada mengurai varchar ke int . Namun, membandingkan varchar yang memiliki setidaknya 4 karakter akan membuat keunggulan itu tidak berguna. Jika nilai Anda cenderung lebih tinggi dari 999, transmisikan ke int akan lebih cepat. Tapi itu sekarang tergantung pada sistem operasi Anda, arsitektur, set instruksi yang digunakan oleh biner mysql Anda dan sebagainya. Satu-satunya cara untuk mendapatkan jawaban yang benar-benar andal adalah:Tolok ukur situasi tersebut pada mesin target.