Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mengapa tidak menggunakan varchar (maks)?

Jawaban saya untuk ini, bukan tentang penggunaan Max, melainkan tentang alasan VARCHAR(max) vs TEXT.

Dalam buku saya; pertama-tama, Kecuali Anda benar-benar yakin bahwa Anda tidak akan pernah menyandikan apa pun kecuali teks bahasa Inggris dan orang-orang tidak akan merujuk ke nama lokasi asing, maka Anda harus menggunakan NVARCHAR atau NTEXT.

Kedua, itulah yang memungkinkan Anda untuk dilakukan oleh bidang.

TEXT sulit untuk diperbarui dibandingkan dengan VARCHAR, tetapi Anda mendapatkan keuntungan dari Pengindeksan Teks Lengkap dan banyak hal pintar.

Di sisi lain, VARCHAR(MAX) memiliki beberapa ambiguitas, jika ukuran sel <8000 karakter, itu akan diperlakukan sebagai data Baris. Jika lebih besar, itu akan diperlakukan sebagai LOB untuk tujuan penyimpanan. Karena Anda tidak dapat mengetahuinya tanpa menanyakan RBAR, ini mungkin memiliki strategi pengoptimalan untuk tempat-tempat di mana Anda perlu yakin tentang data Anda dan berapa biaya membacanya.

Jika tidak, jika penggunaan Anda relatif biasa dan Anda tidak berharap memiliki masalah dengan ukuran data (IE Anda menggunakan .Net dan karena itu tidak perlu khawatir tentang ukuran objek string/char* Anda) maka menggunakan VARCHAR(max) tidak masalah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara Streaming data dari/ke bidang SQL Server BLOB?

  2. Bagaimana Saya Bisa Masuk dan Menemukan Kueri Termahal?

  3. Matikan Partisi di SQL Server (T-SQL)

  4. Pernyataan ALTER TABLE bertentangan dengan batasan CHECK di SQL Server - Tutorial SQL Server / TSQL Bagian 89

  5. Bagaimana cara menulis karakter UTF-8 menggunakan penyisipan massal di SQL Server?