Câu hỏi phỏng vấn MySQL
Câu hỏi

Liệt kê các kiểu dữ liệu TEXT trong MySQL? Sự khác biệt giữa TEXTVARCHAR là gì?

Câu trả lời

Trong MySQL, có một số kiểu dữ liệu TEXT khác nhau, mỗi loại được thiết kế để lưu trữ các chuỗi văn bản có độ dài khác nhau. Dưới đây là danh sách các kiểu TEXT:

Các Kiểu Dữ liệu TEXT

  1. TINYTEXT: Lưu trữ tối đa 255 ký tự.
  2. TEXT: Lưu trữ tối đa 65,535 ký tự (khoảng 64 KiB).
  3. MEDIUMTEXT: Lưu trữ tối đa 16,777,215 ký tự (khoảng 16 MiB).
  4. LONGTEXT: Lưu trữ tối đa 4,294,967,295 ký tự (khoảng 4 GiB).

Sự Khác Biệt Giữa TEXTVARCHAR

Cả TEXTVARCHAR đều là kiểu dữ liệu dùng để lưu trữ chuỗi, nhưng có một số khác biệt quan trọng giữa chúng:

  1. Độ Dài Lưu Trữ:

    • VARCHAR cho phép bạn xác định độ dài tối đa của chuỗi, từ 1 đến 65,535 ký tự. Độ dài thực tế của VARCHAR phụ thuộc vào giới hạn kích thước hàng tối đa của bảng.
    • TEXT có độ dài cố định tối đa tùy thuộc vào loại TEXT (như đã liệt kê ở trên).
  2. Lưu Trữ và Hiệu Suất:

    • VARCHAR được lưu trữ trực tiếp trong bảng và thường nhanh hơn khi kích thước dữ liệu là hợp lý và khi cần truy cập thường xuyên.
    • TEXT được lưu trữ ngoài bảng, với bảng chỉ chứa một con trỏ đến vị trí dữ liệu thực. Điều này có thể làm chậm truy cập dữ liệu do cần thêm bước đọc.
  3. Sử Dụng Chỉ Mục:

    • VARCHAR có thể được chỉ mục hoàn toàn hoặc một phần.
    • TEXT yêu cầu độ dài tiền tố khi tạo chỉ mục, vì không thể chỉ mục toàn bộ cột TEXT.
  4. Giá Trị Mặc Định:

    • VARCHAR có thể có giá trị mặc định.
    • TEXT không thể có giá trị mặc định.
  5. Sử Dụng Bộ Nhớ:

    • VARCHAR sử dụng bộ nhớ tương đương với số ký tự được lưu trữ cộng thêm một hoặc hai byte để lưu độ dài chuỗi.
    • TEXT sử dụng bộ nhớ cố định cho con trỏ, không phụ thuộc vào độ dài chuỗi thực tế.
middle

middle

Gợi ý câu hỏi phỏng vấn

senior

Làm thế nào để VIEW có thể sử dụng để cung cấp lớp bảo mật cho ứng dụng của bạn?

middle

Hãy giải thích sự khác nhau giữa TIMESTAMPDATETIME và khi nào nên sử dụng chúng?

middle

ENUM được sử dụng như thế nào trong MySQL?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào