Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tốt nhất để giữ trường TEXT duy nhất trong cơ sở dữ liệu MySQL

Khi tôi được hỏi trong phần nhận xét rằng tôi sẽ giải quyết vấn đề này như thế nào, tôi sẽ viết nó như một câu trả lời.

Ở trong tình huống như vậy cho thấy những sai lầm trong thiết kế ứng dụng. Hãy xem xét điều đó có nghĩa là gì.

Bạn có một văn bản mà bạn không thể xác định trước độ dài và có thể cực kỳ dài (lên đến 64k), mà bạn muốn giữ tính độc đáo. Hãy tưởng tượng một lượng dữ liệu như vậy được chia thành các khóa riêng biệt và tạo một chỉ mục tổng hợp để tạo ra tính duy nhất. Đây là những gì bạn đang cố gắng làm. Đối với số nguyên, đây sẽ là một chỉ mục gồm 16000 số nguyên, được kết hợp trong một chỉ mục tổng hợp.

Hãy xem xét thêm rằng các trường loại CHARACTER (CHAR, VARCHAR, TEXT) được giải thích bằng cách mã hóa, điều này càng làm phức tạp thêm vấn đề.

Tôi thực sự khuyên bạn nên tách dữ liệu ra bằng cách nào đó. Điều này không chỉ giải phóng DBMS khỏi việc kết hợp các khối ký tự có độ dài thay đổi mà còn có thể cung cấp một số khả năng tạo khóa tổng hợp trên các phần của dữ liệu. Có thể bạn thậm chí có thể tìm thấy giải pháp lưu trữ tốt hơn cho dữ liệu của mình.

Nếu bạn có câu hỏi, tôi khuyên bạn nên đăng bảng và / hoặc cấu trúc cơ sở dữ liệu và giải thích dữ liệu logic nào mà trường TEXT chứa, và tại sao bạn cho rằng nó cần phải là duy nhất.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách khắc phục Mã trạng thái máy chủ:302 Tìm thấy bởi SQL Inject Me Firefox Addon

  2. Chuyển đổi tự động MySQL thành chữ thường

  3. Mysql không sử dụng chỉ mục DATETIME khi bảng có các trường khác

  4. Magento:Thêm thuộc tính sản phẩm bằng tập lệnh cài đặt mô-đun

  5. Cách chọn từ văn bản mảng mysql và so sánh