mysql特性舉例 MySQL 5 7 GIS特性

2021-10-12 23:11:38 字數 1742 閱讀 4824

gis特性 版本支援情況

mysql 5.7版本之前只有myisam引擎支援空間資料;

mysql 5.7版本之前只有myisam支援r樹查詢;

mysql 5.7版本之前地理空間型別效能比較一般;

mysql 5.7版本之前地理空間函式支援度有限;

mysql 5.7版本之前不支援geohash以及geojson;

基於此,業界的lbs應用大多基於mongodb資料庫,因為mongodb內建的geoindex非常好用,外加分片特性非常適合於lbs這樣的應用。

對於事務要求較高的應用場景,也有公司使用postgis。

mysql 5.7 gis改進

通過boost geometry庫重構之前的地理空間資料的**實現;

增加很多通用的gis函式,比如球面舉例的計算函式st_distance_sphere等;

innodb儲存引擎原生支援地理空間資料型別

innodb儲存引擎新增r樹索引支援地理空間查詢

測試create table nodes (

id bigint(20) default null,

geom geometry not null,

geohash varchar(128) as (st_geohash(geom,6)) virtual,

user varchar(50) default null,

version int(11) default null,

timestamp varchar(20) default null,

uid int(11) default null,

changeset int(11) default null,

unique key idx_nodes_id (id),

spatial key idx_nodes_geom (geom),

key idx_nodes_geohash(geohash)

) engine=innodb default charset=utf8mb4;

執行最常見的lbs需求:

查詢某個經緯度周圍5公里的節點資訊,並根據距離進行排序

-- r樹索引

select id,

st_distance_sphere(point(120.167673,30.259498), geom) as distance,

st_astext(geom) geom

from nodes

where st_contains( st_makeenvelope(

point((120.167673+(5/111)), (30.259498+(5/111))),

point((120.167673-(5/111)), (30.259498-(5/111)))

), geom )

order by distance limit 10;

-- geohash

-- st_geohash

select id,

st_distance_sphere(point(120.167673,30.259498), geom) as distance,

st_astext(geom) geom

from nodes

where geohash in ('wtmknk','wtmkn6','wtmkne','wtmkn5','wtmknh','wtmkns','wtmknd','wtmkn4','wtmkn7')

order by distance limit 10

mysql5無法注入 mysql5注入

對mysql5注入時,可以直接查詢information schema中的tables表,快速找到所需的表段。同時可以利用group concat函式,得到你想得到的東西,不用limit乙個乙個猜。前面先轉轉別人的東西 and 1 2 union select 1,2,group concat us...

mysql5 新特性 支援儲存過程!!

支援儲存過程是mysql5中乙個很重要的新增特性。因為儲存過程有很多好處 使用者可以重用 和更改控制 和將業務邏輯流程寫入多個應用程式不同的是,使用者只需要寫 一次儲存過程就可以立刻使用許多應用程式來呼叫該過程,從而實現特定的業務邏輯流程。資料庫管理員也可以通過標準的管理函式來處理不同版本中的資料庫...

mysql 5 5 注入 mysql5注入

對mysql5注入時,可以直接查詢information schema中的tables表,快速找到所需的表段。同時可以利用group concat函式,得到你想得到的東西,不用limit乙個乙個猜。前面先轉轉別人的東西 and 1 2 union select 1,2,group concat us...