2010-02-13 17 views
31

Ortalama PHP web geliştiricileri gibi MySql'i bir RDBMS olarak kullanıyorum. MySql (diğer RDBMS'de olduğu gibi) SPATIAL INDEX özelliklerini de sunuyor, ancak çok iyi anlamadım. Ben bunun için googled ama bu konuda kötü bilgimi açıklığa kavuşturmak için açık gerçek dünya örnekleri bulamadık.SPATIAL INDEX nedir ve ne zaman kullanmalıyım?

Birisi bana biraz SPATIAL INDEX nedir ve ne zaman kullanmalıyım?

+5

demian, bu sorunuza cevap vermedi? Daha fazla yardıma ihtiyacınız varsa, cevabıma bir yorum eklemek için çekinmeyin. Ya da bu sizin için çözdüyse, lütfen cevabımı "cevap" olarak kontrol etmek için çok nazik olun. TIA, roland. –

+1

Resmi MySQL belgelerinde açıklamalar ve örnekler bulunur: [Mekansal İndeksler Oluşturma] (http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-indexes.html) - [Bir Mekansal İndeks Kullanarak] (http://dev.mysql.com/doc/refman/5.5/en/using-a-spatial-index.html) – Jocelyn

cevap

17

Coğrafi nesneleri - şekilleri dizine eklemek için uzamsal bir dizin kullanabilirsiniz. Uzamsal indeks,

+4

Çok özel olmasına rağmen [Yüksek Performanslı Mekansal Veritabanları Oluşturma] (http://sqlbits.com/Sessions/ Event5/create_high_performance_spatial_databases), Mekansal Endekslerin diğer endekslerden çok farklı olduğunu anlamak için harika bir video. –

+0

Mekansal endeksler 2-D olduğundan, merak ediyorum, bunları düzenli kullanım verilerindeki aralık sorguları gibi diğer kullanım durumlarında kullanabilir miyim? –

+0

@MangatRaiModi Sadece normal tamsayı verileri ise, normal bir btree dizini kullanmanız daha iyi olabilir. Bunlar aralık sorgularını destekler. –

6

uzayında üst üste binen nesneleri etkili bir şekilde araştırmayı mümkün kılar. Mekansal İndeks, bu fark ile Mekansal nesnelerin 1D veri noktaları değil, daha yüksek boyutta (örn. 2B) ve dolayısıyla sıradan bir indekse benzer BTree gibi indeksler bu tür verileri indekslemek için uygun değildir. Tanınmış uzaysal İndeks tekniği, R-tree (wikipedia üzerinde Google)

-2

Aralıklı dizinin kullanımı, aralık taraması için değil, tam eşleşen değer aramanın aranması için en iyisidir.Özellikle MyISAM tablolarında desteklenir fakat MySQL 5.7.4 LAB sürümünden, aynı zamanda Innodb tarafından desteklenmektedir.

Referanslar: - 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

Önce uzamsal bir dizin denir. İkinci olarak, aralık taraması için olmama konusundaki yorumunuz, bir btree'deki uzamsal olmayan bir dizin için geçerli olduğundan, oradaki bir uzamsal indeksden bahsetmiyor - "Uzamsal sütunların dizisel olmayan endekslenmesini destekleyen depolama motorları için, motor bir B-ağacı indeksi yaratıyor Uzamsal değerler üzerinde bir B-ağacı dizini, tam değer aramaları için yararlıdır, ancak aralık taramaları için uygun değildir. " – jbu

İlgili konular