自作の、Spatial(GIS)関連の関数をMySQLに追加するプラグインの関数をひとつひとつ動作確認しながら紹介するシリーズ。 STX_Relate(g1, g2) DE-9IM 関係行列を返す。 2つの値について、以下の表のような相互の関係を求め、II IB IE BI BB BE EI EB EE の順となる9バイトの文字列にして返す。 g2の内部(I) g2の境界(B) g2の外部(E) ────────────────────────────────────── g1の内部(I) │ II │ IB │ IE g1の境界(B) │ BI │ BB │ BE g1の外部(E) │ EI…
自作の、Spatial(GIS)関連の関数をMySQLに追加するプラグインの関数をひとつひとつ動作確認しながら紹介するシリーズ。 STX_LineSubstring(line, start, end) LINESTRINGを指定した割合の場所でちょん切って返す関数です。 (0,0)-(0,100) のLINESTRINGを、0.3~0.75 の範囲で切り出すと (0,30)-(0,75) のLINESTRINGが返ってくる、といった動作をします。2点によるLINESTRINGのみでなく3点以上のLINESTRINGでも動作します。 第2、第3引数に与えるのは 0.0-1.0の範囲の割合で、第2…
Perconaフォーラムで定期的に浮上する質問:Percona XtraDB Cluster (PXC)のすべてのノードにXtraBackupをインストールする必要がありますか? これは混合環境を管理している場合や特定のノードのソフトウェアフットプリントを最小限に抑えようとする場合に特に妥当な質問です。実際の仕組みとテストが確認する内容を以下に示します。
簡潔な回答(ただし読み進めてください)
そのノードに何をさせたいかによります。 ここでのニュアンスがかなり重要なので、PXCにおけるState Snapshot Transfer (SST)の仕組みと、特定のノードにXtraBackupが存在する — または存在しない — ことがなぜ重要かを詳しく説明する価値があります。
PXCにおけるSSTの簡単なおさらい
新しいノードがPercona XtraDB …
[さらに読む]TL;DR
- なんか見慣れない感じがするのは
ALTER TABLE .. ADD INDEX .., ALGORITHM = INPLACE(Fast Index Creation)の時に起こるエラーだから- コード上は
ALTER TABLE以外にもHash Joinとかでも出るっぽい
- コード上は
- innodb_tmpdir の容量が足りないと起こる
- なので他に容量があるなら
innodb_tmpdirの場所を変えるか、 …
2026年2月27,28日(金土)の 2日間にわたって駒沢大学で開催されたオープンソースカンファレンス2026東京春(OSC2026 Tokyo/Spring)に参加してきました。今回も日本MySQLユーザ会としてブース展示とセミナー1枠の開催をしてきました。 event.ospn.jp 定常運転 1日目は11時から展示開始。11時の少し前に設営を完了し、全3部屋(オーディオ部屋入れると4部屋)ある各ブースの知り合いたちのところへご挨拶まわり。 まぁとにかく東京開催は規模が大きい。次に自分のブースに戻ってきたのは1時半近くでした。こんな感じのゆるいブース展示をやっていますので、MySQLユーザ…
先日開催された日本MySQLユーザ会会(MyNA会) 2026年02月の発表では、MySQL 9.7
(LTS)ではEnterprise版でしか提供されていない機能がCommunity版にも入るかも!という話があった。
まだ確定情報ではないとのことで、9.7がリリースされるまで2ヶ月ほどは待つしかないが、話題に上がったOpenTeremetry機能がどれくらい使えそうか試してみた。
今回はMySQL Enterprise 8.4.8にcomponent_telemetryコンポーネントをインストールし、OpenTelemetry
Collectorで収集、メトリクスはprometheus、traceはgrafana tempoで収集し、それぞれをData
sourceにしてGrafanaでグラフにする構成とした。
OSはUbuntu 24.04。
構成図
…[さらに読む]MySQLにSpatial(GIS)関数をいっぱい追加したくて、Pluginを作っています。 sakaik.hateblo.jpテストを兼ねて一つ一つ関数を紹介しています。 STX_Project(point, dist, azimuth) 与えられた点を、指定された方向に、指定された距離だけ移動した点を返す。地理座標系の場合は地球の丸さを考慮して計算する。 方向は、北をゼロとした時計回りにラジアンで指定する。 LINESTRING や POLYGONでは動作しない(NULL)。 動作紹介 霞ヶ関付近から真北(0度)に1000m移動した点 mysql> SET @g=ST_GeomFromTe…
MySQL Spatial Functions Plugin、関数を動作確認して紹介するシリーズ。度分秒を変換する関数が欲しかったので追加しました。 STX_dms2deg(d, m, s) 度、分、秒の数字を与えて、小数点の度の数値へ変換する機能です。GISツールどこにもそんな機能はない(と思う)のですが、私が頻繁に使うので、関数として追加することにしました。 STX_deg2dms_deg/_min/_sec (d) 小数点表示の「度」の数値を度分秒に変換する関数です。3つの値を同時に返すことはできないので、それぞれの値を返す3つの関数にしました。度、分は整数、秒は(必要であれば)小数付き…
自作の MySQL Spatial Functions Plugin の関数をひとつひとつ検証しています。今回は Googleの Encoded Polyline 形式に変換したり、逆にEncoded PolylineからLINESTRINGに変換したりするエンコード、デコード関数を。 STX_AsEncodedPolyline(geom [, prec])、STX_LineFromEnccodedPolyline(text [, srid [, prec]]) LINESTRINGをGoogle の Encoded Polyline 形式にエンコード/デコードする関数です。Encoded P…
MySQLにSpatial(GIS)関数を追加しています(プラグインとして)。ひとつひとつの関数を動作確認しつつ紹介するシリーズ。ひとつ前に続いて、角度関係です。 STX_Angle(p1, p2, p3) 3つのPOINTを与えてそれが為す角(p1-p2-p3)の角度を求めます。戻り値はラジアン。PostGISに倣い、本関数は与えられた座標を平面として扱います。また、PostGISに実装されている「4つのPOINTを与える機能」「2つのLINESTRINGを与える機能」は実装されていません(要望があったら考えます)。 角度はp1からp2を経由してp3に向かう p2における角度を、「反時計回り…