自作の、Spatial(GIS)関連の関数をMySQLに追加するプラグインの関数をひとつひとつ動作確認しながら紹介するシリーズ。 STX_ClosestPoint(geom1, geom2) geom2にもっとも近い位置となるような geom1上の点を返す。実は STX_ShortestLine() 関数が返すLINESTRINGの第1点と結果は同じ。 動作紹介 第一引数がPOINTならば、必ずそのPOINTが結果となる。 mysql> SELECT ST_AsText(STX_ClosestPoint( -> ST_GeomFromText('POINT(1 0)'), -> ST_Geom…
自作の、Spatial(GIS)関連の関数をMySQLに追加するプラグインの関数をひとつひとつ動作確認しながら紹介するシリーズ。 STX_ShortestLine(g1, g2) 2つのジオメトリ間の最短線分を返します。つまり、2つの点から構成される LINESTRING型を返します。 動作紹介 POINTとLINESTRINGの最短距離。この例ではLINESTRING側の端点が、POINTに一番近い mysql> SELECT ST_AsText(STX_Shortestline( -> ST_GeomFromText('POINT(0 0)'), -> ST_GeomFromText('L…
準備
$ sysbench --mysql-socket=/usr/mysql/8.0.45/data/mysql.sock --mysql-user=root oltp_common --table_size=1000000 prepare
mysql80 30> SELECT format_bytes(@@innodb_buffer_pool_size);
+-----------------------------------------+
| format_bytes(@@innodb_buffer_pool_size) |
+-----------------------------------------+
| 64.00 MiB |
+-----------------------------------------+
1 row in set (0.00 sec)
mysql80 30> SHOW ENGINE PERFORMANCE_SCHEMA STATUS;
..
| performance_schema | performance_schema.memory | 240987688 |
+--------------------+-------------------------------------------------------------+-----------+
248 rows in set (0.00 sec)
$ ll -h /usr/mysql/8.0.45/data/sbtest/sbtest1.ibd
-rw-r-----. 1 yoku0825 yoku0825 248M Mar 9 06:03 /usr/mysql/8.0.45/data/sbtest/sbtest1.ibd
まずはそのままrun
$ date ; sysbench …[さらに読む]
自作の、Spatial(GIS)関連の関数をMySQLに追加するプラグインの関数をひとつひとつ動作確認しながら紹介するシリーズ。 STX_Dwithin(g1, g2, dist) ふたつのジオメトリの間の距離が、第3引数の範囲内かを判定して 1(範囲内)か 0(範囲外)を返す。 動作紹介 辺が 3,4,5の長さとなる直角三角形の斜辺の長さは5 (つまり 5 以内か、の判定は True(1)) mysql> SELECT STX_DWithin( -> ST_GeomFromText('POINT(0 0)'), -> ST_GeomFromText('POINT(3 4)'), -> 5 -…
自作の、Spatial(GIS)関連の関数をMySQLに追加するプラグインの関数をひとつひとつ動作確認しながら紹介するシリーズ。 STX_RelateMatch(g1, g2, pattern) 与えた2つのジオメトリの関係が、第3引数で与えたDE-9IM関係行列とマッチすることを判定する。どうでもよい部分は "* "にして与える。マッチする場合は1、アンマッチの場合は0を返す。 動作紹介 g1がg2に含まれる関係の判定 mysql> SELECT STX_RelateMatch( -> ST_GeomFromText('POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))')…
自作の、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ユーザ…