Có gì khác nhau giữa loại vararvvvvvv


15

Tất cả những gì tôi biết về sự khác biệt của chúng là varcharcó giới hạn, và textkhông. Các tài liệu không đề cập về điều này.

Đó thực sự là sự khác biệt duy nhất? Không xem xét về hiệu suất hoặc vv?


1
Điều này thực sự nên được di chuyển đến Quản trị viên cơ sở dữ liệu . Nó không có gì để quản trị máy chủ.
Evan Carroll

Câu trả lời:


22

Nền tảng của điều này là: Hệ thống Postgres cũ đã sử dụng ngôn ngữ PostQUEL và sử dụng một loại dữ liệu có tên text(vì ai đó nghĩ rằng đó là một tên hay cho một loại lưu trữ văn bản). Sau đó, Postgres đã được chuyển đổi để sử dụng SQL làm ngôn ngữ của nó. Để đạt được khả năng tương thích SQL, thay vì đổi tên textloại, một loại mới varcharđã được thêm vào. Nhưng cả hai loại đều sử dụng cùng một thói quen C trong nội bộ.

Bây giờ, ở một mức độ nào đó và ở một số nơi, textđược mã hóa cứng như một loại mặc định, trong trường hợp không có gì khác có thể được dẫn xuất. Ngoài ra, hầu hết các chức năng chỉ có sẵn khi lấy một textđối số hoặc trả về text. Hai loại tương thích nhị phân, do đó, đúc là một hoạt động phân tích thời gian phân tích tầm thường. Nhưng sử dụng textvẫn là tổng thể tự nhiên hơn cho hệ thống.

Nhưng ngoài những điểm tốt này, không có sự khác biệt đáng chú ý. Sử dụng bất cứ ai trông đẹp hơn đối với bạn. ;-)


Oh giải thích tốt. Tôi sẽ sử dụng 'văn bản' vì tôi không quan tâm đến khả năng tương thích mà sử dụng lợi ích của sản phẩm cụ thể. Cảm ơn!
Eonil

1

Xem câu hỏi tương tự này . Điểm chính là không có sự khác biệt, nhưng chỉ định độ dài tối đa varchar(n)thường không có lợi cho bạn, vì nó sử dụng nhiều không gian hơn nhưng không cải thiện hiệu suất.


0

http://www.postgresql.org/docs/8.4/interactive/datatype-character.html

character varying(n), varchar(n)        variable-length with limit
text                                    variable unlimited length

văn bản không có độ dài khai báo. Không có sự khác biệt hiệu suất giữa hai loại này.


5
Bạn cũng có thể sử dụng varchar mà không có phần (), điều này cũng sẽ làm cho nó có độ dài không giới hạn, và do đó ít nhiều tương đương với văn bản.
Magnus Hagander
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.