Sự khác biệt giữa VARCHAR và CHAR là gì?

Sự khác biệt giữa VARCHAR và CHAR trong MySQL là gì?

Bạn Đang Xem: Sự khác biệt giữa VARCHAR và CHAR là gì?

Tôi đang cố gắng lưu trữ băm MD5.

314 hữu ích 1 bình luận 565k xem chia sẻ

answer

315

VARCHAR là chiều dài thay đổi.

CHAR là chiều dài cố định.

Nếu nội dung của bạn có kích thước cố định, bạn sẽ có hiệu suất tốt hơn CHAR.

Xem trang MySQL về các loại CHAR và VARCHAR để được giải thích chi tiết (hãy chắc chắn cũng đọc các bình luận).

315 hữu ích 5 bình luận chia sẻ

answer

202

CHAR

  1. Được sử dụng để lưu trữ giá trị chuỗi ký tự có độ dài cố định .
  2. Tối đa không. trong số các ký tự, kiểu dữ liệu có thể chứa là 255 ký tự .
  3. nhanh hơn 50% so với VARCHAR.
  4. Sử dụng cấp phát bộ nhớ tĩnh .

VARCHAR

  1. Được sử dụng để lưu trữ dữ liệu chữ và số có độ dài thay đổi .
  2. Tối đa loại dữ liệu này có thể giữ là tối đa
    • Pre-MySQL 5.0.3: 255 ký tự .
    • Post-MySQL 5.0.3: 65.535 ký tự được chia sẻ cho hàng.
  3. chậm hơn CHAR.
  4. Sử dụng cấp phát bộ nhớ động * .

202 hữu ích 5 bình luận chia sẻ

answer

111

CHAR Vs VARCHAR

CHAR được sử dụng cho Biến cố định kích thước chiều dài cố định

được sử dụng cho biến kích thước chiều dài thay đổi.

Ví dụ

Create table temp (City CHAR(10), Street VARCHAR(10)); Insert into temp values('Pune','Oxford'); select length(city), length(street) from temp;

Đầu ra sẽ là

length(City) Length(street) 10 6

Kết luận: Để sử dụng không gian lưu trữ một cách hiệu quả, phải sử dụng VARCHAR Thay vì CHAR nếu độ dài biến là biến

Xem Thêm: TBA Là Gì? Từ Này Phổ Biến Nhất Với Ý Nghĩa Nào? – Thư viện khoa học

111 hữu ích 2 bình luận chia sẻ

answer

59

Một CHAR(x)cột chỉ có thể có chính xác các x ký tự.

Một VARCHAR(x)cột có thể có tối đa x ký tự.

Vì băm MD5 của bạn sẽ luôn có cùng kích thước, nên có lẽ bạn nên sử dụng a CHAR.

Tuy nhiên, bạn không nên sử dụng MD5 ở nơi đầu tiên; nó đã biết điểm yếu.

Sử dụng SHA2 thay thế.

Nếu bạn đang băm mật khẩu, bạn nên sử dụng bcrypt.

59 hữu ích 3 bình luận chia sẻ

answer

9

Varchar cắt bỏ khoảng trắng ở cuối nếu các ký tự được nhập ngắn hơn độ dài khai báo, trong khi char thì không. Char sẽ đệm khoảng trắng và sẽ luôn là độ dài của độ dài khai báo. Về hiệu quả, varchar có nhiều kinh nghiệm hơn vì nó cắt các ký tự để cho phép điều chỉnh nhiều hơn. Tuy nhiên, nếu bạn biết độ dài chính xác của char, char sẽ thực thi với tốc độ nhanh hơn một chút.

Để xem thêm chi tiết về điều này, hãy xem:

http://www.allthingsdiscussed.com/More/Difference-b between-char-and-varchar-in-mysql

9 hữu ích 1 bình luận chia sẻ

answer

8

Sự khác biệt giữa VARCHAR và CHAR trong MySQL là gì?

Để đưa ra câu trả lời, tôi muốn thêm rằng trong các hệ thống OLTP hoặc trong các hệ thống có cập nhật thường xuyên, hãy cân nhắc sử dụng CHARngay cả đối với các cột có kích thước thay đổi vì có thể VARCHARphân mảnh cột trong quá trình cập nhật.

Tôi đang cố gắng lưu trữ băm MD5.

Băm MD5 không phải là lựa chọn tốt nhất nếu bảo mật thực sự quan trọng. Tuy nhiên, nếu bạn sẽ sử dụng bất kỳ hàm băm nào, hãy xem xét BINARYloại cho nó thay vào đó (ví dụ MD5 sẽ tạo ra hàm băm 16 byte, như vậy BINARY(16)là đủ thay vì CHAR(32)32 ký tự đại diện cho các chữ số hex. Điều này sẽ tiết kiệm không gian hơn và hiệu quả hiệu quả.

8 hữu ích 1 bình luận chia sẻ

answer

5

Trong hầu hết các RDBMS ngày nay, chúng là từ đồng nghĩa. Tuy nhiên, đối với những hệ thống vẫn có sự khác biệt, trường CHAR được lưu trữ dưới dạng cột có chiều rộng cố định. Nếu bạn xác định nó là CHAR (10), thì 10 ký tự được ghi vào bảng, trong đó “padding” (thường là khoảng trắng) được sử dụng để điền vào bất kỳ khoảng trống nào mà dữ liệu không sử dụng hết. Ví dụ: lưu “bob” sẽ được lưu dưới dạng (“bob” +7 dấu cách). Cột VARCHAR (ký tự biến) có nghĩa là lưu trữ dữ liệu mà không lãng phí thêm dung lượng mà cột CHAR thực hiện.

Như mọi khi, Wikipedia nói to hơn.

5 hữu ích 0 bình luận chia sẻ

answer

4

CHAR là trường có độ dài cố định; VARCHAR là một trường có chiều dài thay đổi. Nếu bạn đang lưu trữ các chuỗi có độ dài thay đổi lớn như tên, thì hãy sử dụng VARCHAR, nếu độ dài luôn giống nhau, thì hãy sử dụng CHAR vì nó hiệu quả hơn một chút và cũng nhanh hơn một chút.

4 hữu ích 1 bình luận chia sẻ

answer

2

CHAR là chiều dài cố định và VARCHAR là chiều dài thay đổi. CHAR luôn sử dụng cùng một dung lượng lưu trữ cho mỗi mục nhập, trong khi VARCHAR chỉ sử dụng lượng cần thiết để lưu trữ văn bản thực tế.

Xem Thêm: Sales Volume là gì? Định nghĩa, ví dụ, giải thích

2 hữu ích 0 bình luận chia sẻ

answer

2

Char là kiểu dữ liệu ký tự có độ dài cố định, varchar là kiểu dữ liệu ký tự có độ dài thay đổi.

Vì char là loại dữ liệu có độ dài cố định, kích thước lưu trữ của giá trị char bằng với kích thước tối đa cho cột này. Vì varchar là loại dữ liệu có độ dài thay đổi, kích thước lưu trữ của giá trị varchar là chiều dài thực của dữ liệu được nhập, không phải kích thước tối đa cho cột này.

Bạn có thể sử dụng char khi các mục nhập dữ liệu trong một cột được dự kiến ​​có cùng kích thước. Bạn có thể sử dụng varchar khi các mục nhập dữ liệu trong một cột được dự kiến ​​sẽ thay đổi đáng kể về kích thước.

2 hữu ích 0 bình luận chia sẻ

answer

theo sách MySQL hiệu suất cao :

VARCHAR lưu trữ các chuỗi ký tự có độ dài thay đổi và là loại dữ liệu chuỗi phổ biến nhất. Nó có thể yêu cầu ít không gian lưu trữ hơn các loại có độ dài cố định, vì nó chỉ sử dụng nhiều dung lượng mà nó cần (nghĩa là, ít không gian hơn được sử dụng để lưu trữ các giá trị ngắn hơn). Ngoại lệ là bảng MyISAM được tạo bằng ROW_FORMAT = FIXED, sử dụng một lượng không gian cố định trên đĩa cho mỗi hàng và do đó có thể lãng phí không gian. VARCHAR giúp hiệu suất vì nó tiết kiệm không gian.

CHAR có độ dài cố định: MySQL luôn phân bổ đủ không gian cho số lượng ký tự được chỉ định. Khi lưu trữ một giá trị CHAR, MySQL sẽ loại bỏ mọi dấu cách. (Điều này cũng đúng với VARCHAR trong MySQL 4.1 và các phiên bản cũ hơn CHAR CHAR và VAR CHAR giống hệt nhau về mặt logic và chỉ khác nhau về định dạng lưu trữ.) Các giá trị được đệm bằng khoảng trắng khi cần để so sánh.

0 hữu ích 0 bình luận chia sẻ

answer

4

Char có độ dài cố định (hỗ trợ 2000 ký tự), viết tắt của ký tự là kiểu dữ liệu

Varchar có độ dài thay đổi (hỗ trợ 4000 ký tự)

4 hữu ích 1 bình luận chia sẻ

answer

5

Char hoặc varchar- nó được sử dụng để nhập dữ liệu texual trong đó độ dài có thể được chỉ định trong ngoặc Eg- name char (20)

5 hữu ích 2 bình luận chia sẻ

Xem nguồn: https://stackoverflow.com//questions/1885630/whats-the-difference-between-varchar-and-char

Sự khác biệt giữa VARCHAR và CHAR là gì?

Có thể bạn quan tâm

Sự khác biệt giữa VARCHAR và CHAR là gì?

Nguồn: https://webtintuc247.com
Danh Mục: Hỏi Đáp

Bài viết liên quan