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

Làm thế nào để tối ưu hóa truy vấn SQL với việc tính toán khoảng cách theo kinh độ và vĩ độ?

Dưới đây là một vài ý tưởng, một số ý tưởng có thể không áp dụng tùy thuộc vào tình huống chính xác của bạn.

  1. Bạn có thể thực hiện việc chuyển đổi vĩ độ và kinh độ sang radian và lưu trữ cả vĩ độ và kinh độ trong hàng. Điều này sẽ giúp tiết kiệm chi phí của những tính toán đó (thực tế chi phí sẽ được tích lũy một lần khi lưu trữ dữ liệu).
  2. Nếu bảng của bạn rất lớn, bạn có thể sử dụng một phép tính khoảng cách tuyến tính đơn giản thay vì công thức Haversince để giới hạn kết quả mà bạn áp dụng công thức Haversince.
  3. Nếu bạn có dữ liệu khác trong bảng đóng vai trò là bộ lọc đầu tiên tốt (quốc gia / khu vực / v.v.), bạn có thể áp dụng dữ liệu đó trước.
  4. Bạn có thể sắp xếp lại thứ tự các liên kết của mình để chúng được áp dụng sau bộ lọc khoảng cách để bạn không phải chịu chi phí liên kết trên dữ liệu không đủ điều kiện.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận dữ liệu cho biểu đồ biểu đồ

  2. Symfony2 trả về JSON trống trên lệnh gọi AJAX trong khi biến không trống

  3. Không thể truy cập MySQL sau khi nó tự động tạo mật khẩu tạm thời

  4. mysql đã chết nhưng các subsys bị khóa

  5. Khóa ngoại trong vấn đề di chuyển Laravel 4