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

tăng hiệu suất trên một truy vấn SELECT với tập dữ liệu điểm 3D lớn

B-Tree chỉ mục sẽ không giúp ích nhiều cho một truy vấn như vậy.

Những gì bạn cần làm R-Tree chỉ mục và truy vấn song song có giới hạn tối thiểu trên nó.

Thật không may, MySQL không hỗ trợ R-Tree lập chỉ mục trên 3d điểm, chỉ 2d . Tuy nhiên, bạn có thể tạo chỉ mục trên XY cùng nhau sẽ được chọn lọc hơn bất kỳ B-Tree nào lập chỉ mục trên XY một mình:

ALTER TABLE points ADD xy POINT;

UPDATE  points
SET     xy = Point(x, y);

ALTER TABLE points MODIFY xy POINT NOT NULL;


CREATE SPATIAL INDEX sx_points_xy ON points (xy);

SELECT  *
FROM    points
WHERE   MBRContains(LineString(Point(100, 100), Point(200, 200), xy)
        AND z BETWEEN 100 and 200
        AND otherParameter > 10;

Điều này chỉ có thể thực hiện được nếu bảng của bạn là MyISAM .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bất kỳ Thư viện Javascript / Jquery Để xác thực trạng thái SQL?

  2. CakePHP sử dụng nhiều cơ sở dữ liệu cho các mô hình

  3. Cách đặt lại mật khẩu gốc MySQL

  4. mysql không được công nhận là lệnh nội bộ hoặc lệnh bên ngoài, chương trình có thể hoạt động hoặc lô

  5. Tính tổng số tiền được trả từ một bảng do foreach tạo trong codeigniter