MySQLのGIS機能2022

このエントリは、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2022 の1日目です。「RDBMS-GIS Advent Calendar」では参加者を絶賛募集中です。今年も、ご自由にお気楽に参加ください。

さて。

MySQL の Spatial機能(GIS機能)、2022年の進化のまとめです。MySQLは臨時のリリースがない限りは通常、3ヶ月に一度、年4回のアップデート・バージョンが公開されます。
リリースノートから、この1年の進化を見てみましょう。

といいつつ実は、2022年は、あまり大きな進化のない1年でした。新機能追加してくれないと、私、飽きちゃうぞっ!

MySQL 8.0.28(2022年1月)

 MBRContains() 関数が遅かった(空間インデックスをちゃんと使わないことがあった)のが改善されたようです。

Queries making use of the MBRContains() function did not employ all available spatial indexes. (Bug #32975221)
References: This issue is a regression of: Bug #29770705.

MySQL 8.0.29(2022年4月~その後リリース取り下げ)

 Spatial機能に関する変更点、なし

MySQL 8.0.30(2022年7月)

 リリースノートによると、2件の関連修正が含まれています。

一点目は、ST_Transform()の使いどころの拡大。平面直角座標系への変換をサポートするようになったようです。SRID 3857の、いわゆる「Webメルカトル」がサポートされたとのこと。日本の平面直角座標系(JGD2000だと SRID 2443〜2461) はまだかなぁ。。

Previously, the ST_TRANSFORM() function added in MySQL 8.0.13 did not support Cartesian Spatial Reference Systems. Beginning with this release, support is provided by this function for the Popular Visualisation Pseudo Mercator (EPSG 1024) projection method, used for WGS 84 Pseudo-Mercator (SRID 3857).


もう一点は、全バージョンで混入したバグの修正。 MySQL 8.0.29 でBoostライブラリ(Ver. 1.77.0)にしたらエリア計算の方法が変わってしまい、既存の空間インデックスに問題が発生していたとのこと。

Upgrading to MySQL 8.0.29 led to issues with existing spatial indexes (see Creating Spatial Indexes). The root cause of the problem was a change in how geographic area computations were performed by the included Boost library, which was upgraded to version 1.77.0 in MySQL 8.0.29. We fix this by ensuring that we accommodate the new method whenever such computations are performed. (Bug #107320, Bug #34184111)

References: This issue is a regression of: Bug #33353637.

MySQL 8.0.31(2022年10月)

 Spatial機能に関する変更点、なし

全体を通して

 冒頭でもコメントしたとおり、MySQLのSpatial機能の進化に期待する身としては、非常に地味な1年となりました。Spatial機能に関する修正が入ったのが4回のリリース中2回にとどまっています。Spatial機能は半年に一度という方針なのか、たまたまこうなったのか、引き続き2023年も注視していきたいと思います。
 個人的には、最近少し PostGISも触りはじめたこともあって、MySQLの進化が停滞するならば、そのうち私、「PostGISさいこー」とか言い始めちゃうぞ~!(笑)
PostGISが関数の充実度、長年の実績の積み重ね、利用実績の多さなど、素晴らしいのは間違いないです。MySQLも追いついて欲しいです...)

An image by Dall-E