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

char vs varchar untuk kinerja dalam basis data stok

Di MyISAM, ada beberapa manfaat untuk membuat catatan lebar tetap. VARCHAR adalah lebar variabel. CHAR adalah lebar tetap. Jika baris Anda hanya memiliki tipe data dengan lebar tetap, maka seluruh baris memiliki lebar tetap, dan MySQL memperoleh beberapa keuntungan menghitung kebutuhan ruang dan offset baris dalam tabel itu. Yang mengatakan, keuntungannya mungkin kecil dan hampir tidak sebanding dengan kemungkinan keuntungan kecil yang sebanding dengan biaya lain (seperti efisiensi cache) dari memiliki kolom CHAR dengan lebar tetap dan empuk di mana VARCHAR akan menyimpan lebih kompak.

Breakpoint menjadi lebih efisien tergantung pada aplikasi Anda, dan ini bukanlah sesuatu yang dapat dijawab kecuali dengan Anda menguji kedua solusi dan menggunakan solusi yang paling sesuai untuk data Anda dalam penggunaan aplikasi Anda.

Mengenai INT(7) versus INT(11), ini tidak relevan dengan penyimpanan atau kinerja. Ini adalah kesalahpahaman umum bahwa argumen MySQL ke tipe INT ada hubungannya dengan ukuran data - tidak. Tipe data INT MySQL selalu 32 bit. Argumen dalam tanda kurung mengacu pada berapa banyak digit yang harus diisi jika Anda menampilkan nilai dengan ZEROFILL. Misalnya. INT(7) akan menampilkan 0001234 di mana INT(11) akan menampilkan 00000001234. Namun padding ini hanya terjadi saat nilai ditampilkan, bukan selama penyimpanan atau perhitungan matematika.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masalah DataColumn MaxLength dengan MySql.Data.MySqlClient.MySqlCommand.ExecuteReader

  2. sql untuk menghitung poin untuk game

  3. Menggunakan pernyataan Select dan where dalam Kriteria

  4. Basis Data Gagal di Sumber data Jboss

  5. Bagaimana cara memasukkan array nilai ke dalam kolom yang berbeda dari tabel mysql?