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

Thứ tự lập chỉ mục tổng hợp InnoDB và hiệu suất INSERT

(Lưu ý:Câu trả lời này làm rõ hoặc không đồng ý với một số nhận xét đã được viết.)

DELETEs bị chậm lại vì xóa các mục nhập chỉ mục. UPDATEs may bị chậm lại - điều này phụ thuộc vào việc một cột được lập chỉ mục có được thay đổi hay không.

SELECTs , UPDATEsDELETEs , nhưng không phải INSERTs , cần tìm (các) hàng; đối với điều này, một chỉ mục có thể giúp ích rất nhiều.

INSERT sẽ bị tổn hại thêm một khoản tiền nếu có UNIQUE chỉ mục để kiểm tra.

Các khóa phụ (trong InnoDB), ngoại trừ cho UNIQUE khóa, được cập nhật (thường là do INSERTDELETEs , nhưng có thể do UPDATE ) theo cách 'bị trì hoãn' thông qua cái được gọi là "Bộ đệm thay đổi". Điều này giúp ngăn chặn việc cập nhật chỉ mục một cách hiệu quả, nhưng vẫn giữ cho chỉ mục hoàn toàn có thể sử dụng được.

Không có điều nào trong số này bị ảnh hưởng bởi thứ tự của các cột trong một chỉ mục. Tuy nhiên, nếu một chỉ mục lớn hơn mức có thể được lưu vào bộ nhớ cache trong RAM, thì "bộ nhớ đệm" sẽ phát huy tác dụng và I / O có thể có hoặc có thể không tham gia. Nhưng đó là một chủ đề khác.

Nói chung là lợi ích từ một chỉ mục để đọc vượt xa hơn nhiều làm chậm các hoạt động ghi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel:Dữ liệu chuỗi, bị cắt ngắn bên phải:1406 Dữ liệu quá dài cho cột

  2. Xuất dữ liệu phân tích của tôi và đưa chúng vào cơ sở dữ liệu

  3. Liferay không hoạt động với MySQL

  4. Truy xuất ngày còn thiếu từ cơ sở dữ liệu thông qua MySQL

  5. Nhận id được chèn mới nhất trong trình kích hoạt?