2010-02-13 18 views
31

Giống như hầu hết các nhà phát triển web PHP trung bình, tôi sử dụng MySql như một RDBMS. MySql (như các RDBMS khác cũng) cung cấp các tính năng SPATIAL INDEX, nhưng tôi không hiểu rõ lắm. Tôi đã googled cho nó nhưng không tìm thấy ví dụ thế giới thực rõ ràng để làm rõ kiến ​​thức xấu của tôi về nó.INDEX SPATIAL là gì và khi nào tôi nên sử dụng?

Có thể ai đó giải thích cho tôi một chút một chỉ số không gian là gì và khi nào tôi nên sử dụng nó?

+5

Demian, đã trả lời câu hỏi này của bạn? vui lòng thêm nhận xét vào câu trả lời của tôi nếu bạn cần thêm trợ giúp. Hoặc nếu điều đó giải quyết nó cho bạn, hãy rất tử tế để kiểm tra câu trả lời của tôi là "câu trả lời". TIA, roland. –

+1

Tài liệu chính thức của MySQL đưa ra các giải thích và ví dụ: [Tạo các chỉ mục không gian] (http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-indexes.html) - [Sử dụng chỉ mục không gian] (http://dev.mysql.com/doc/refman/5.5/en/using-a-spatial-index.html) – Jocelyn

Trả lời

17

Bạn có thể sử dụng chỉ mục không gian để lập chỉ mục đối tượng địa lý - hình dạng. Chỉ số không gian làm cho nó có thể tìm kiếm các đối tượng chồng lấp trong không gian

+4

Mặc dù rất cụ thể [Tạo cơ sở dữ liệu không gian hiệu suất cao] (http://sqlbits.com/Sessions/ Event5/creation_high_performance_spatial_databases) là một Video tuyệt vời để hiểu các chỉ mục không gian khác nhau như thế nào so với các chỉ mục khác. –

+0

Chỉ tò mò, vì các chỉ số không gian là 2-D, tôi có thể khai thác chúng trên các trường hợp sử dụng khác, như các truy vấn phạm vi trên dữ liệu inteher thường xuyên không? –

+0

@MangatRaiModi Nếu nó chỉ là dữ liệu nguyên thường, thì bạn có thể sử dụng chỉ số btree bình thường hơn. Những hỗ trợ phạm vi truy vấn. –

6

Chỉ số không gian giống như một điểm khác nhau. các chỉ mục như BTree không thích hợp để lập chỉ mục các dữ liệu đó. Kỹ thuật chỉ số không gian nổi tiếng là R-tree (Google nó trên wikipedia)

-2

Việc sử dụng chỉ mục không gian là tốt nhất để tìm kiếm giá trị khớp chính xác, không phải để quét phạm vi. Nó chủ yếu được hỗ trợ trong bảng MyISAM từ phiên bản MySQL 5.7.4 LAB, nó cũng được hỗ trợ bởi Innodb.

Tài liệu tham khảo: - http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-indexes.html http://mysqlserverteam.com/innodb-spatial-indexes-in-5-7-4-lab-release/

+1

Đầu tiên nó được gọi là một chỉ số không gian. Thứ hai, nhận xét của bạn về nó không được dùng để quét phạm vi áp dụng cho chỉ mục không gian trên btree vì vậy nó không nói về chỉ mục không gian ở đó - "Đối với các công cụ lưu trữ hỗ trợ lập chỉ mục không gian cột không gian, động cơ tạo chỉ mục B-tree Một chỉ số B-tree về các giá trị không gian rất hữu ích cho việc tra cứu giá trị chính xác, nhưng không hữu ích cho việc quét phạm vi. " – jbu