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

Tối ưu hóa chỉ mục bảng MySQL

Một chỉ mục trên cột dấu thời gian và userid sẽ hữu ích. Bạn cần có thể đọc đầu ra của Tuyên bố GIẢI THÍCH.

Đi tới MySQL và thực hiện như sau:

EXPLAIN SELECT timestamp, username, [a few more] FROM log 
WHERE timestamp  BETWEEN '2012-03-30 08:00:00' AND '2012-03-30 16:00:00' 
AND username='XX' 

Điều này cho bạn thấy kế hoạch mà MySQL sử dụng để thực hiện truy vấn. Sẽ có cột được gọi là khóa. Điều này cho biết chỉ mục nào MySQL đang sử dụng trong truy vấn. Tôi nghi ngờ bạn sẽ thấy TẤT CẢ ở đó có nghĩa là MySQL đang quét bảng từ trên xuống dưới phù hợp với mọi hàng với mệnh đề where của bạn. Bây giờ, hãy tạo một chỉ mục trên các cột dấu thời gian và userid. Chạy lại câu lệnh EXPLAIN. Bạn sẽ thấy chỉ mục mà bạn đã tạo trong cột chính.

Nếu MySQL sử dụng chỉ mục thì truy vấn của bạn sẽ nhanh hơn đáng kể. Chỉ cần nhớ không để quá chỉ số. Các chỉ mục làm cho việc chèn, cập nhật và xóa chậm hơn. Khi bạn chèn một hàng mới vào bảng và có ba chỉ mục trên bảng thì hàng mới phải ghi 3 giá trị vào ba chỉ mục khác nhau. Vì vậy, nó là một con dao hai lưỡi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. com.mysql.jdbc.exceptions.MySQLSyntaxErrorException khi sử dụng PreparedStatement

  2. MYSQl Tối ưu hóa bảng các bài đăng trên blog có nhận xét

  3. Tại sao chúng ta cần sử dụng Phím ngoại?

  4. Xem nhanh các hàm số của SQL Server

  5. laravel 4 - làm thế nào để Giới hạn (Lấy và Bỏ qua) cho ORM Hùng biện?