mysql 空间 类型_MySQL空间类型测试
Mysql空間類型介紹:
MySQL支持空間擴(kuò)展,允許生成、保存和分析地理特征。這些特征可用于MyISAM、InnoDB、NDB、BDB和ARCHIVE表(但是,ARCHIVE引擎不支持索引功能,因此,不能為ARCHIVE列中的空間列編制索引)。
測(cè)試目的:
想用mysql的專用空間類型來(lái)代替整數(shù)類型存儲(chǔ)坐標(biāo)信息,從而在地圖搜索的時(shí)候提高效率。
參考文檔:
測(cè)試環(huán)境:
服務(wù)器:PowerEdge R710
內(nèi)存:32G
軟件:percona mysql 5.5.28
測(cè)試:
一、功能測(cè)試
1.建立空間類型的表和×××類型的表,分別保存的數(shù)據(jù)為user_id,x軸坐標(biāo),y軸坐標(biāo)
CREATE TABLE `testa` (
`uid` int(11) DEFAULT NULL,
`p` point NOT NULL ,
SPATIAL KEY `p` (`p`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1COLLATE=latin1_bin
CREATE TABLE `testb` (
`uid` int(11) DEFAULT NULL,
`x` int(11) DEFAULT NULL,
`y` int(11) DEFAULT NULL,
Key `x`(`x`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1COLLATE=latin1_bin
2.生成測(cè)試數(shù)據(jù)
awk'BEGIN{srand();for(i=1;i<=100000;i++)printn++,int(rand()*1000),int(rand()*1000)}' > a.txt
3.將測(cè)試數(shù)據(jù)導(dǎo)入到空間類型與整數(shù)類型的表中
cat a.txt|awk '{print "INSERT INTOtesta VALUES ("$1",GeomFromText(\"POINT("$2""$3")\"));"}'|mysql
cat a.txt|awk '{print "INSERT INTOtestb VALUES("$1","$2","$3")\"));"}'|mysql
4.查看數(shù)據(jù)是否插入成功
mysql> select uid,astext(p) fromtesta limit 3;
+------+----------------+
| uid ?|astext(p)????? |
+------+----------------+
|??? 0 | POINT(140 955) |
|??? 1 | POINT(912 377) |
|??? 2 | POINT(63561)? |
+------+----------------+
mysql> select uid,x,y from testblimit 3;
+------+----------------+---+
| uid? | x????| y |
+------+----------------+---+
|??? 0 | 140? | 955|
|??? 1 | 912? | 377|
|??? 2 | 635? | 61?|
+------+----------------+---+
二、性能測(cè)試
1.用同樣的條件對(duì)空間類型的表和×××的表進(jìn)行查詢操作
mysql> SELECT count(uid) FROM testa WHERE Intersects(p, GeomFromText('POLYGON((0 0, 300 0, 300 300, 0 300, 0 0))') ) and uid>1000anduid<=2000;
+------------+
| count(uid) |
+------------+
|???????? 93 |
+------------+
1 row in set (1.67 sec)
mysql> SELECT count(uid) FROM testb WHERE x>=0 andx<=300 and y>=0 and y<=300 and uid>1000 anduid<=2000;
+------------+
| count(uid) |
+------------+
|???????? 93 |
+------------+
1 row in set (1.28 sec)
2.性能測(cè)試結(jié)果
測(cè)試結(jié)論:
mysql的空間類型還不夠成熟,用作坐標(biāo)查詢沒(méi)有優(yōu)勢(shì)比用×××存儲(chǔ)查詢速度要慢,而且業(yè)界使用的也很少,所以地圖搜索不能使用該類型。
總結(jié)
以上是生活随笔為你收集整理的mysql 空间 类型_MySQL空间类型测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 自己怎么购买交强险
- 下一篇: Google 桌面搜索的使用