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

Cải thiện hiệu quả chỉ mục MySQL - các cột trong nhiều chỉ mục?

Chỉ là một ghi chú ngắn gọn vì loại thứ này được nhìn thấy lặp đi lặp lại:THAM GIA trên prism_worlds là không cần thiết vì bạn (hầu hết có thể) không cần dữ liệu từ bảng đó. Về cơ bản, bạn đang yêu cầu cơ sở dữ liệu "cho tôi mọi tên của các thế giới có tên tương đương với 'something'". Thay vào đó, hãy sử dụng truy vấn con vô hướng.

Tạo một chỉ mục duy nhất trên prism_worlds.world và chạy truy vấn như

SELECT *
FROM prism_data 
WHERE prism_data.world_id = (SELECT w.world_id FROM prism_worlds AS w WHERE w.world = 'DeuxTiersMondes')
LIMIT 1000;

Trình tối ưu hóa sẽ tìm ra rằng prism_data.world_id bị giới hạn ở một giá trị hằng số duy nhất. MySQL sẽ chạy trước một truy vấn để tìm ra giá trị này và sử dụng nó cùng với truy vấn. Xem EXPLAIN cho const -yêu cầu được thực thi.

Liên quan đến prism_data.x , .y.z :Bạn có thể muốn tạo một cột hình học và một chỉ mục không gian cho mục đó. Nếu bạn cần phải tuân theo các giá trị riêng biệt, bạn có thể muốn tách toàn bộ hình học thế giới thành các voxel có kích thước cố định (được đại diện bởi một int duy nhất) và sử dụng hình học đơn giản để tìm ra vị trí nào rơi vào voxel nào.

Giải pháp cá nhân của tôi sẽ không đưa ra quá nhiều suy nghĩ về việc thêm lượng truy vấn trên bảng này. Các chỉ số sẽ làm cho nó chậm và lớn. Sử dụng cron job để điền vào bảng báo cáo (dạng xem cụ thể hóa) để đưa ra kết quả trước thời hạn và sử dụng chúng miễn là cron job xuất hiện và cập nhật lại chúng.



  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ạo khung dữ liệu Spark từ truy vấn SQL

  2. mysql - Tôi đã xóa bảng người dùng! làm thế nào tôi có thể khôi phục nó?

  3. Giá trị chuỗi không chính xác:'\ xF0 \ x9F \ x8E \ xB6 \ xF0 \ x9F ...' MySQL

  4. Lấp khoảng trống trong ngày Trả về từ Cơ sở dữ liệu - giải pháp SQL thuần túy có được không?

  5. Chú thích Hibernate 4 - Lỗi cấu hình MySQL:java.sql.SQLException:Không thể thêm ràng buộc khóa ngoại