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

Sự khác biệt giữa Khóa, Khóa chính, Khóa duy nhất và Chỉ mục trong MySQL

KEYINDEX là các từ đồng nghĩa trong MySQL. Chúng có nghĩa giống nhau. Trong cơ sở dữ liệu, bạn sẽ sử dụng các chỉ mục để cải thiện tốc độ truy xuất dữ liệu. Chỉ mục thường được tạo trên các cột được sử dụng trong JOIN , WHEREORDER BY điều khoản.

Hãy tưởng tượng bạn có một bảng được gọi là users và bạn muốn tìm kiếm tất cả những người dùng có họ 'Smith'. Nếu không có chỉ mục, cơ sở dữ liệu sẽ phải xem qua tất cả các bản ghi của bảng:điều này là chậm, vì bạn càng có nhiều bản ghi trong cơ sở dữ liệu của mình, thì nó càng phải làm nhiều việc để tìm ra kết quả. Mặt khác, một chỉ mục sẽ giúp cơ sở dữ liệu nhanh chóng chuyển đến các trang có liên quan nơi chứa các bản ghi 'Smith'. Điều này rất giống với cách chúng ta, con người, duyệt qua danh bạ điện thoại để tìm ai đó theo họ:Chúng ta không bắt đầu tìm kiếm qua danh bạ từ đầu này sang đầu khác, miễn là chúng ta đã chèn thông tin theo thứ tự nào đó mà chúng ta có thể sử dụng để chuyển nhanh đến các trang 'S'.

Khóa chính và khóa duy nhất tương tự nhau. Khóa chính là một cột hoặc một tổ hợp các cột, có thể xác định duy nhất một hàng. Đây là một trường hợp đặc biệt của khóa duy nhất . Một bảng có thể có nhiều nhất một khóa chính, nhưng có nhiều hơn một khóa duy nhất. Khi bạn chỉ định một khóa duy nhất trên một cột, không có hai hàng riêng biệt nào trong bảng có thể có cùng giá trị.

Cũng lưu ý rằng các cột được xác định là khóa chính hoặc khóa duy nhất được tự động lập chỉ mục trong MySQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Quản lý giám sát và hoạt động của MySQL 8.0 với ClusterControl

  2. Viết hoa chữ cái đầu tiên của mỗi từ, trong bảng hiện có

  3. Không thể tải plugin xác thực 'caching_sha2_password'

  4. LỖI 1698 (28000):Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost'

  5. Hàm MySQL - FOUND_ROWS () cho Tổng số hàng bị ảnh hưởng