tôi có màu đỏ nvarchar rằng phải mất gấp đôi varchar
Yes. Theo Microsoft: "Kích thước bộ nhớ, tính bằng byte, gấp hai lần số ký tự được nhập + 2 byte" (http://msdn.microsoft.com/en-us/library/ms186939(SQL.90).aspx).
Nhưng dung lượng lưu trữ rẻ; Tôi không bao giờ lo lắng về một vài byte phụ.
Ngoài ra, hãy tự khắc phục sự cố trong tương lai và đặt độ rộng tối đa cho độ rộng tối đa, chẳng hạn như 100 ký tự. Có hoàn toàn không có phí lưu trữ này khi bạn đang sử dụng varchar hoặc nvarchar (như trái ngược với char/nchar). Bạn không bao giờ biết khi nào bạn sẽ gặp phải họ ba nòng hoặc một số tên nước ngoài dài vượt quá 30 ký tự.
nvarchar được sử dụng để quốc tế hóa.
nvarchar có thể lưu trữ bất kỳ ký tự unicode nào, chẳng hạn như ký tự không phải chữ Latinh (tiếng Ả Rập, tiếng Trung, v.v.). Tôi không chắc chắn làm thế nào ứng dụng của bạn sẽ được lấy dữ liệu (thông qua web, thông qua một bộ công cụ GUI, vv) nhưng nó có khả năng rằng bất cứ công nghệ bạn đang sử dụng hỗ trợ unicode ra khỏi hộp. Điều đó có nghĩa là đối với bất kỳ dữ liệu nào do người dùng nhập (chẳng hạn như tên), có luôn là khả năng nhận các ký tự không phải Latinh, nếu không phải bây giờ thì trong tương lai.
Nếu tôi đang xây dựng một ứng dụng mới, tôi sẽ sử dụng nvarchar. Gọi nó là "tương lai chống" nếu bạn thích.
Nguồn
2009-08-13 11:39:23
http://stackoverflow.com/questions/35366/varchar-vs-nvarchar-performance –