日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 空间 类型_MySQL空间类型测试

發布時間:2023/12/19 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 空间 类型_MySQL空间类型测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mysql空間類型介紹:

MySQL支持空間擴展,允許生成、保存和分析地理特征。這些特征可用于MyISAM、InnoDB、NDB、BDB和ARCHIVE表(但是,ARCHIVE引擎不支持索引功能,因此,不能為ARCHIVE列中的空間列編制索引)。

測試目的:

想用mysql的專用空間類型來代替整數類型存儲坐標信息,從而在地圖搜索的時候提高效率。

參考文檔:

測試環境:

服務器:PowerEdge R710

內存:32G

軟件:percona mysql 5.5.28

測試:

一、功能測試

1.建立空間類型的表和×××類型的表,分別保存的數據為user_id,x軸坐標,y軸坐標

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.生成測試數據

awk'BEGIN{srand();for(i=1;i<=100000;i++)printn++,int(rand()*1000),int(rand()*1000)}' > a.txt

3.將測試數據導入到空間類型與整數類型的表中

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.查看數據是否插入成功

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?|

+------+----------------+---+

二、性能測試

1.用同樣的條件對空間類型的表和×××的表進行查詢操作

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.性能測試結果

測試結論:

mysql的空間類型還不夠成熟,用作坐標查詢沒有優勢比用×××存儲查詢速度要慢,而且業界使用的也很少,所以地圖搜索不能使用該類型。

總結

以上是生活随笔為你收集整理的mysql 空间 类型_MySQL空间类型测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。