Perbezaan antara varchar dan nvarchar

Perbezaan antara varchar dan nvarchar

Varchar vs nvarchar

Varchar adalah nama pendek untuk medan watak yang berubah -ubah. Watak mewakili data yang panjang tidak pasti. Varchar dalam erti kata sebenar adalah jenis lajur data yang terdapat dalam sistem pengurusan pangkalan data. Saiz medan lajur Varchar boleh berubah, bergantung pada pangkalan data yang sedang dipertimbangkan.

Di Oracle 9i, medan mempunyai had maksimum 4000 aksara. MySQL mempunyai had data sebanyak 65,535 untuk berturut -turut, dan Microsoft SQL Server 2005 dilengkapi dengan had medan 8000. Angka ini boleh menjadi lebih tinggi di Microsoft SQL Server apabila Varchar (Max) digunakan, meningkat kepada 2 gigabait. Nvarchar, sebaliknya, adalah lajur yang dapat menyimpan data unicode. Codepage yang mesti dipatuhi oleh nvarchar adalah pengekodan 8 bit. Saiz maksimum untuk Varchar ialah 8000 manakala saiz maksimum untuk nvarchar ialah 4000. Ini berkuat kuasa bermaksud bahawa satu lajur varchar boleh menjadi maksimum 8000 aksara dan satu lajur nvarchar boleh menjadi 4000 aksara paling banyak. Melebihi nilai lajur menjadi masalah besar dan bahkan dapat menyebabkan masalah yang serius ketika baris tidak dapat merangkumi beberapa halaman, kecuali SQL Server 2005, dan batasan harus dipatuhi atau kesilapan atau pemotongan akan mengakibatkan ..

Salah satu perbezaan utama antara Varchar dan Nvarchar ialah penggunaan ruang yang kurang di Varchar. Ini kerana nvarchar menggunakan unicode, yang, kerana kerumitan pengekodan spesifik, mengambil lebih banyak ruang. Untuk setiap watak yang disimpan, Unicode memerlukan dua bait data, dan inilah yang boleh menyebabkan nilai data kelihatan lebih tinggi jika dibandingkan dengan data bukan unicode yang digunakan oleh Varchar. Varchar, sebaliknya, hanya memerlukan satu bait data untuk setiap watak yang disimpan. Walau bagaimanapun, lebih penting lagi, walaupun penggunaan Unicode mengambil lebih banyak ruang, ia menyelesaikan masalah yang timbul dengan ketidakserasian codepage yang kesakitan untuk menyelesaikan secara manual.

Oleh itu, ciri ruang dapat diabaikan dalam keutamaan untuk masa yang lebih singkat yang diperlukan Unicode untuk memperbaiki ketidakcocokan yang timbul. Juga, kos cakera dan ingatan juga menjadi agak berpatutan, memastikan ciri ruang sering diabaikan, sementara masa yang lebih lama yang diperlukan untuk menyelesaikan masalah yang timbul dengan Varchar tidak dapat dibuang dengan mudah.

Semua platform pembangunan menggunakan sistem operasi moden secara dalaman, yang membolehkan Unicode berjalan. Ini bermaksud bahawa nvarchar lebih kerap digunakan daripada Varchar. Penukaran pengekodan dielakkan, mengurangkan masa yang diperlukan untuk membaca dan menulis ke pangkalan data. Ini juga mengurangkan kesilapan, dengan pemulihan kesilapan penukaran yang berlaku menjadi masalah mudah untuk ditangani.

Manfaat menggunakan Unicode juga terpakai kepada orang yang menggunakan antara muka aplikasi ASCII, kerana pangkalan data bertindak balas dengan baik, khususnya sistem operasi dan algoritma gabungan pangkalan data.  Data unicode mengelakkan masalah dan data yang berkaitan dengan penukaran boleh disahkan, jika terhad kepada ASCII 7 bit, tanpa mengira sistem warisan yang mesti dikekalkan.

Ringkasan

Varchar dan nvarchar datang dengan jenis watak yang berbeza. Varchar menggunakan data bukan unicode manakala nvarchar menggunakan data unicode.

Kedua -dua varchar dan nvarchar mempunyai pelbagai jenis data yang mesti dipatuhi. Varchar hanya menjimatkan data dalam urutan 1 byte dan nvarchar menjimatkan data dalam 2 bait untuk setiap watak

Panjang maksimum juga berbeza. Panjang Varchar terhad kepada 8000 bait dan 4000 bait adalah had untuk nvarchar.

Ini kerana saiz penyimpanan di Varchar lebih mudah berbanding dengan data unicode yang digunakan oleh nvarchar.