Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apakah buruk bagi kinerja untuk memilih semua kolom?

Masalah di sini bukanlah masalah server database, melainkan hanya komunikasi jaringan. Dengan memilih semua kolom sekaligus, Anda memberi tahu server untuk kembali kepada Anda, semua kolom sekaligus. Adapun kekhawatiran tentang IO dan semua itu, itu ditangani dengan baik dalam pertanyaan dan jawaban yang diberikan @Karamba dalam komentar:pilih * vs pilih kolom . Tetapi untuk sebagian besar aplikasi dunia nyata (dan saya menggunakan "aplikasi" dalam segala hal), perhatian utamanya hanyalah lalu lintas jaringan dan berapa lama waktu yang dibutuhkan untuk membuat serial, mengirimkan, lalu menghapus serial data. Meskipun sebenarnya, jawabannya sama saja.

Jadi menarik kembali semua kolom itu bagus, jika Anda berniat untuk menggunakan semuanya, tapi itu bisa menjadi banyak transfer data ekstra, terutama jika Anda menyimpan, katakanlah, string panjang di kolom Anda. Dalam banyak kasus, tentu saja, perbedaannya tidak akan terdeteksi dan sebagian besar hanya masalah prinsip. Tidak semua, tetapi sebagian besar.

Ini benar-benar hanya pertukaran antara kemalasan Anda yang disebutkan di atas (dan percayalah, kita semua merasa seperti itu) sekarang dan betapa pentingnya kinerja benar-benar adalah.

Itu semua dikatakan, jika Anda melakukannya berniat untuk menggunakan semua nilai kolom, Anda jauh lebih baik menarik semuanya kembali sekaligus kemudian mengajukan banyak pertanyaan.

Anggap saja seperti melakukan pencarian web:Anda melakukan pencarian Anda, Anda menemukan halaman Anda, dan Anda hanya perlu satu detail. Anda dapat membaca seluruh halaman dan mengetahui segalanya tentang subjek tersebut, atau Anda dapat langsung melompat ke bagian tentang apa yang Anda cari dan selesaikan. Yang terakhir jauh lebih cepat jika hanya itu yang Anda inginkan, tetapi jika Anda kemudian harus belajar tentang aspek-aspek lain, Anda akan lebih baik membacanya pertama kali daripada harus melakukan pencarian lagi dan menemukan situs untuk membicarakannya.

Jika Anda tidak yakin apakah Anda akan memerlukan nilai kolom lain di masa mendatang, maka itulah panggilan Anda sebagai pengembang untuk kasus yang lebih memungkinkan.

Itu semua tergantung pada apa aplikasi Anda, apa data Anda, bagaimana Anda menggunakannya, dan seberapa penting kinerja sebenarnya adalah untuk Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP &mySQL:Kode sederhana untuk mengimplementasikan Transaksi - Komit &Kembalikan

  2. mysql_real_escape_string VS menambahkan bulu mata

  3. Masalah dengan GROUP_CONCAT dan Longtext di MySQL

  4. Menggunakan kontrol versi (Git) pada database MySQL

  5. Load Balancing Sadar Basis Data:Cara Bermigrasi dari HAProxy ke ProxySQL