一种对MYSQL空间数据查询的优化方法与流程
未命名
08-26
阅读:104
评论:0

一种对mysql空间数据查询的优化方法
技术领域
1.本发明涉及空间数据查询领域,特别是涉及一种对mysql空间数据查询的优化方法。
背景技术:
2.mysql是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库中,由此增加速度并提高了灵活性。但是,这也同时增加了mysql数据解析和查询的难度。尤其在查询不规则空间面矢量数据时,因形状不规则且数据量较大,查询时运算步骤较多,查询范围较大,浮点运算查询效率较低。因此,设计一种能够减少查询时运算步骤,缩小查询范围,提升直接查询效率的对mysql空间数据查询的优化方法是十分必要的。
技术实现要素:
3.本发明的目的是提供一种对mysql空间数据查询的优化方法,能够减少查询时运算步骤,对查询方法进行分类,针对性优化,缩小查询范围,提升直接查询效率。
4.为实现上述目的,本发明提供了如下方案:
5.一种对mysql空间数据查询的优化方法,包括如下步骤:
6.步骤1:入库空间数据;
7.步骤2:获取目标空间数据;
8.步骤3:比较目标空间数据与数据库表中的空间数据,根据比较结果确定两矩形区域坐标计算法,并根据两矩形区域坐标计算法查询数据;
9.步骤4:基于步骤3查询到的数据,再执行mysql中相关对应空间函数;
10.步骤5:查询结果映射为需求实体。
11.可选的,入库空间数据,具体为:
12.将该空间数据的外边界矩形区域的经度最小坐标x
min
、经度最大坐标x
max
、纬度最小坐标y
min
、纬度最大坐标y
max
值存储到数据库表中。
13.可选的,获取目标空间数据,具体为:
14.获取目标空间数据外边界矩形区域经度最小坐标tx
min
、经度最大坐标tx
max
、纬度最小坐标ty
min
、纬度最大坐标ty
max
。
15.可选的,步骤3中,比较目标空间数据与数据库表中的空间数据,根据比较结果确定两矩形区域坐标计算法,具体为:
16.当比较结果为相交,即max(x
min
,tx
min
)≤min(x
max
,tx
max
)且max(y
min
,ty
min
)≤min(y
max
,ty
max
)时,选择两矩形区域坐标相交法,查询有交叉关系的区域;
17.当比较结果为在内,即x
min
≤tx
min
且x
max
≥tx
max
且y
min
≤ty
min
且y
max
≥ty
max
时,选择两矩形区域坐标在内法,查询有包含关系的区域;
18.当比较结果为不接触,即x
max
《tx
min
或tx
max
《x
min
或y
max
《ty
min
或ty
max
《y
min
时,选择两
矩形区域坐标不接触法,查询没有交叉且没有包含关系的区域。
19.根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的对mysql空间数据查询的优化方法,对空间数据进行预处理,减少查询时运算步骤;对查询方法进行分类,针对性优化;通过边框关系进行初步筛选,缩小查询范围;通过关系运算取代浮点运算,提升直接查询效率。
附图说明
20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1为本发明方法流程图;
22.图2为空间数据点坐标示意图;
23.图3为空间数据线坐标示意图;
24.图4为空间数据面坐标示意图;
25.图5为本发明实施例全国区划数据示意图;
26.图6为本发明实施例优化查询核心代码;
27.图7为本发明实施例结果1的查询区域图形表达结果;
28.图8为本发明实施例结果2的查询区域图形表达结果;
29.图9为本发明实施例结果3的查询区域图形表达结果。
具体实施方式
30.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.本发明的目的是提供一种对mysql空间数据查询的优化方法,能够减少查询时运算步骤,对查询方法进行分类,针对性优化,缩小查询范围,提升直接查询效率。
32.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
33.如图1所示,一种对mysql空间数据查询的优化方法,包括如下步骤:
34.步骤1:入库空间数据;
35.步骤2:获取目标空间数据;
36.步骤3:比较目标空间数据与数据库表中的空间数据,根据比较结果确定两矩形区域坐标计算法,并根据两矩形区域坐标计算法查询数据;
37.步骤4:基于步骤3查询到的数据,再执行mysql中相关对应空间函数;
38.步骤5:查询结果映射为需求实体。
39.入库空间数据,具体为:
40.将该空间数据的外边界矩形区域的经度最小坐标x
min
、经度最大坐标x
max
、纬度最
小坐标y
min
、纬度最大坐标y
max
值存储到数据库表中。空间数据(点、线、面)外边界矩形坐标如图2-4所示。
41.获取目标空间数据,具体为:
42.获取目标空间数据外边界矩形区域经度最小坐标tx
min
、经度最大坐标tx
max
、纬度最小坐标ty
min
、纬度最大坐标ty
max
。
43.步骤3中,比较目标空间数据与数据库表中的空间数据,根据比较结果确定两矩形区域坐标计算法,具体为:
44.当比较结果为相交,即max(x
min
,tx
min
)≤min(x
max
,tx
max
)且max(y
min
,ty
min
)≤min(y
max
,ty
max
)时,选择两矩形区域坐标相交法,查询有交叉关系的区域;
45.当比较结果为在内,即x
min
≤tx
min
且x
max
≥tx
max
且y
min
≤tymin且y
max
≥ty
max
时,选择两矩形区域坐标在内法,查询有包含关系的区域;
46.当比较结果为不接触,即x
max
《tx
min
或tx
max
《x
min
或y
max
《ty
min
或ty
max
《y
min
时,选择两矩形区域坐标不接触法,查询没有交叉且没有包含关系的区域。
47.本发明的一个实施例为:
48.入库全国区划空间数据,并进行目标区域查询相交的区划数据,共3112条数据,总存储573mb,具体方法如下:
49.步骤1:如图2所示,导入全国区划数据并计算存储各个区划的边界经纬度,经度最小坐标x
min
、经度最大坐标x
max
、纬度最小坐标y
min
、纬度最大坐标y
max
,如图5所示;
50.步骤2:获取目标区域空间数据,计算目标区域的边界经度最小坐标tx
min
、经度最大坐标tx
max
、纬度最小坐标ty
min
、纬度最大坐标ty
max
;
51.步骤3:使用矩形区域坐标相交法,对数据库中空间数据进行筛选,缩小查询范围;
52.步骤4:基于步骤3筛选后的数据,使用mysql空间相交函数,如图6所示;
53.步骤5:查询结果映射为区划实体。
54.结果1:
55.选择查询区域坐标:[[[aa116.16943359374999,39.795227049865378],a[116.13922119140598,39.542541502992019],[116.426239013672,39.44366454986767],[116.613006591797,39.62219238189768],[116.613006591797,39.81445312408395],[116.393280029297,39.8707580557243],[116.16943359374999,39.795227049865378]]]
[0060]
选择查询区域图形表达,表达结果如图7所示:
[0061]
查询耗时对比如下:
[0062]
序号原始查询(ms)优化查询(ms)1400334823980307339302904396041153920302
[0063]
得到查询结果:12条
[0064]
结果2:
[0065]
选择查询区域坐标:[[[118.98742675781202,32.567596434704167],[118.737487792969,
32.42477416908113],[118.440856933594,32.150115965959987],[118.311767578125,31.45248413003259],[118.88031005859399,31.891937255026176],[118.597412109375,32.13088989174156],[118.98742675781202,32.567596434704167]]]
[0068]
选择查询区域图形表达,表达结果如图8所示:
[0069]
查询耗时对比如下:
[0070]
序号原始查询(ms)优化查询(ms)1383031824510316342902994379030753840305
[0071]
得到查询结果:17条
[0072]
结果3:
[0073]
选择查询区域坐标:[[[115.548706054687,36.13265991122388],[112.230834960937,34.35287475499367],[112.230834960937,31.529388426906455],[113.263549804687,33.00155639563579],[116.152954101562,32.11166381752303],[115.548706054687,36.13265991122388]]]
[0078]
选择查询区域图形表达,表达结果如图9所示:
[0079]
查询耗时对比如下:
[0080]
序号原始查询(ms)优化查询(ms)1395057923940551339607344399053653980611
[0081]
得到查询结果:147条
[0082]
本发明提供的对mysql空间数据查询的优化方法,首先对空间数据进行预处理,减少查询时运算步骤;对查询方法进行分类,针对性优化;通过边框关系进行初步筛选,缩小查询范围;通过关系运算取代浮点运算,提升直接查询效率。
[0083]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
技术特征:
1.一种对mysql空间数据查询的优化方法,其特征在于,包括如下步骤:步骤1:入库空间数据;步骤2:获取目标空间数据;步骤3:比较目标空间数据与数据库表中的空间数据,根据比较结果确定两矩形区域坐标计算法,并根据两矩形区域坐标计算法查询数据;步骤4:基于步骤3查询到的数据,再执行mysql中相关对应空间函数;步骤5:查询结果映射为需求实体。2.根据权利要求1所述的对mysql空间数据查询的优化方法,其特征在于,入库空间数据,具体为:将该空间数据的外边界矩形区域的经度最小坐标x
min
、经度最大坐标x
max
、纬度最小坐标y
min
、纬度最大坐标y
max
值存储到数据库表中。3.根据权利要求1所述的对mysql空间数据查询的优化方法,其特征在于,获取目标空间数据,具体为:获取目标空间数据外边界矩形区域经度最小坐标tx
min
、经度最大坐标tx
max
、纬度最小坐标ty
min
、纬度最大坐标ty
max
。4.根据权利要求3所述的对mysql空间数据查询的优化方法,其特征在于,步骤3中,比较目标空间数据与数据库表中的空间数据,根据比较结果确定两矩形区域坐标计算法,具体为:当比较结果为相交,即max(x
min
,tx
min
)≤min(x
max
,tx
max
)且max(y
min
,ty
min
)≤min(y
max
,ty
max
)时,选择两矩形区域坐标相交法,查询有交叉关系的区域;当比较结果为在内,即x
min
≤tx
min
且x
max
≥tx
max
且y
min
≤ty
min
且y
max
≥ty
max
时,选择两矩形区域坐标在内法,查询有包含关系的区域;当比较结果为不接触,即x
max
<tx
min
或tx
max
<x
min
或y
max
<ty
min
或ty
max
<y
min
时,选择两矩形区域坐标不接触法,查询没有交叉且没有包含关系的区域。
技术总结
本发明提供了一种对MYSQL空间数据查询的优化方法,该方法包括:入库空间数据;获取目标空间数据;比较目标空间数据与数据库表中的空间数据,根据比较结果确定两矩形区域坐标计算法,并根据两矩形区域坐标计算法查询数据;基于查询到的数据,再执行MYSQL中相关对应空间函数;查询结果映射为需求实体。本发明提供的一种对MYSQL空间数据查询的优化方法,能够减少查询时运算步骤,对查询方法进行分类,针对性优化,缩小查询范围,提升直接查询效率。提升直接查询效率。提升直接查询效率。
技术研发人员:赵可 刘动超 张凌玮 陈航 尹宏康
受保护的技术使用者:中急管(北京)网络科技有限公司
技术研发日:2023.01.31
技术公布日:2023/8/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:基于移动感知的车联网边缘缓存更新方法 下一篇:减肥苦荞茶及其制备方法与流程