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

Việc thêm chỉ mục vào cột BIGINT trong MySQL có hữu ích không?

Nếu bạn có một bảng rất lớn, thì việc tìm kiếm các giá trị không được lập chỉ mục có thể cực kỳ chậm. Theo thuật ngữ MySQL, loại truy vấn này kết thúc là "quét bảng", là một cách nói nó phải kiểm tra từng hàng trong bảng một cách tuần tự. Đây rõ ràng không phải là cách tốt nhất để làm điều đó.

Thêm chỉ mục sẽ giúp đọc tốc độ, nhưng cái giá bạn phải trả là chậm hơn một chút ghi tốc độ. Luôn có một sự đánh đổi khi thực hiện tối ưu hóa, nhưng trong trường hợp của bạn, việc giảm thời gian đọc sẽ rất lớn trong khi việc tăng thời gian ghi sẽ không đáng kể.

Hãy nhớ rằng việc thêm một chỉ mục vào một bảng lớn có thể mất một khoảng thời gian đáng kể, vì vậy hãy kiểm tra điều này với dữ liệu sản xuất trước khi áp dụng nó vào hệ thống sản xuất của bạn. Bảng có thể sẽ bị khóa trong khoảng thời gian của ALTER TABLE tuyên bố.

Như thường lệ, hãy sử dụng EXPLAIN trên các truy vấn của bạn để xác định chiến lược thực thi của chúng. Trong trường hợp của bạn, nó sẽ giống như sau:

EXPLAIN SELECT * FROM table1 WHERE my_big_number=19287319283784


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm Solr với Cơ sở dữ liệu Mysql, bất kỳ tiện ích nào để nhập dữ liệu

  2. cột mySQL để giữ mảng

  3. Làm thế nào để chuyển đổi epoch sang mySQL timestamp trong JAVA

  4. biến php trong tên hàng MySQL

  5. Cách so sánh Dấu thời gian trong mệnh đề where