Karena varchar mengambil ruang disk sebanding dengan ukuran bidang, apakah ada alasan mengapa kita tidak harus selalu mendefinisikan varchar sebagai maksimum, misalnya varchar(8000)
pada SQL Server?
Pada membuat tabel, jika saya melihat ada yang melakukan varchar(100)
saya harus memberi tahu mereka tidak Anda salah Anda harus lakukan varchar(8000)
?
sql-server
varchar
Aleksandr Levchuk
sumber
sumber
Jawaban:
Ringkasan: jangan lakukan itu.
sumber
Dengan asumsi Anda merujuk ke SQL Server, saya bisa memikirkan satu.
Ada batas ukuran (8K) dari sebuah baris dalam sebuah tabel dan SQL memungkinkan Anda mendefinisikan bidang varchar yang secara teoritis dapat melebihi batas itu. Jadi pengguna bisa mendapatkan kesalahan jika mereka memasukkan terlalu banyak data di bidang yang terkait dengan itu.
Dimulai dengan SQL 2K8 Anda dapat melebihi batas ini, tetapi ada implikasi kinerja .
Juga, ada seluruh kewajaran memeriksa membatasi ukuran untuk apa yang Anda harapkan dari data. Jika Anda ingin bidang panjang yang tidak terbatas mengapa tidak pergi dengan teks atau ntext?
sumber
Tentunya itu tergantung pada informasi apa yang sedang disimpan di lapangan?
Beberapa hal akan memiliki panjang maksimum karena sejumlah alasan dan jika harus ada panjang maksimum maka itu harus menjadi panjang bidang Anda.
Jika secara teoritis tidak ada panjang maksimum maka saya akan mempertanyakan mengapa varchar akan digunakan.
sumber
Saya konteks Oracle Databases saya belajar bahwa selalu menggunakan ukuran bidang terkecil untuk kolom Database memiliki satu perangkap.
Ketika memindahkan data melalui ekspor impor dari database dengan satu byte byte ke satu dengan beberapa byte byte (seperti Oracle XE) panjang dalam byte dapat meningkatkan dan mengimpor data ke dalam tabel yang dibuat oleh impor gagal. Tentu saja Oracle memiliki opsi untuk menentukan panjang varchar2 baik sebagai char atau sebagai byte.
Maksud saya di sini, adalah tidak selalu bijaksana untuk mendefinisikan bidang dengan selalu sekecil mungkin. Saya telah melihat banyak tabel alter untuk menambah withs nanti (disebabkan oleh perubahan persyaratan).
Memiliki 20% - 100% bidang yang tidak digunakan dengan adalah opsi yang dapat dibicarakan di sini.
sumber