MySQL索引之空間索引(SPATIAL)

lhrbest發表於2017-09-08
MySQL索引之空間索引(SPATIAL)




mysql對GIS空間資料的支援,包括建立空間索引



CREATE TABLE tb_geo(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(128) NOT NULL,
pnt POINT NOT NULL,
SPATIAL INDEX `spatIdx` (`pnt`)
)ENGINE=MYISAM DEFAULT CHARSET=utf8;















DESCRIBE tb_geo;



INSERT INTO `tb_geo` VALUES(
NULL,
'a test string',
POINTFROMTEXT('POINT(15 20)'));





SELECT id,NAME,ASTEXT(pnt) FROM tb_geo;


SELECT id,NAME,X(pnt),Y(pnt) FROM tb_geo;





SELECT ASTEXT(pnt) FROM tb_geo WHERE MBRWITHIN(pnt,GEOMFROMTEXT('Polygon((0 0,0 30,30 30,30 0,0 0))'));



DROP TABLE tb_geo;





SET @g1 = GEOMFROMTEXT('Polygon((0 0,0 3,3 3,3 0,0 0))');
SET @g2 = GEOMFROMTEXT('Point(1 1)');




SELECT MBRCONTAINS(@g1,@g2), MBRCONTAINS(@g2,@g1), MBRCONTAINS(@g1,@g1);

SELECT MBRWITHIN(@g2,@g1),MBRWITHIN(@g1,@g2);

SELECT MBRDISJOINT(@g1,@g2);

SELECT MBREQUAL(@g1,@g2);

SELECT MBRINTERSECTS(@g1,@g2);

SELECT MBROVERLAPS(@g1,@g2);

SELECT MBRTOUCHES(@g1,@g2);


注:

在最新發布的MySQL 5.7.4實驗室版本中,InnoDB儲存引擎新增了對於幾何資料空間索引的支援。 
在此之前,InnoDB將幾何資料儲存為BLOB(二進位制大物件)資料,在空間資料上只能建立字首索引,當涉及空間搜尋時非常低效,尤其是在涉及複雜的幾何資料時。在大多數情況下,獲得結果的唯一方式是掃描表。
新版本MySQL中,InnoDB支援空間索引,通過R樹來實現,使得空間搜尋變得高效。 
InnoDB空間索引也支援MyISAM引擎現有的空間索引的語法,此外,InnoDB空間索引支援完整的事務特性以及隔離級別。 
目前,InnoDB空間索引只支援兩個維度的資料,MySQL開發團隊表示有計劃支援多維。此外,開發團隊正在做更多關於效能方面的工作,以使其更加高效。










About Me

.............................................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、部落格園(http://www.cnblogs.com/lhrbest)和個人微信公眾號(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文部落格園地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、個人簡介及小麥苗雲盤地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

.............................................................................................................................................

● QQ群號:230161599(滿)、618766405

● 微信群:可加我微信,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友646634621,註明新增緣由

● 於 2017-09-01 09:00 ~ 2017-09-30 22:00 在魔都完成

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

.............................................................................................................................................

小麥苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麥苗出版的資料庫類叢書http://blog.itpub.net/26736162/viewspace-2142121/

.............................................................................................................................................

使用微信客戶端掃描下面的二維碼來關注小麥苗的微信公眾號(xiaomaimiaolhr)及QQ群(DBA寶典),學習最實用的資料庫技術。

   小麥苗的微信公眾號      小麥苗的DBA寶典QQ群1     小麥苗的DBA寶典QQ群2        小麥苗的微店

.............................................................................................................................................

MySQL索引之空間索引(SPATIAL)
DBA筆試面試講解群1
DBA筆試面試講解群2
歡迎與我聯絡



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2144682/,如需轉載,請註明出處,否則將追究法律責任。

相關文章