Community journal

The latest from the MySQL community

Ideas, releases, practical guides, and perspectives from the people building with MySQL.

Follow the feed
Showing entries 1 to 10 of 3184 « Previous | Next »
【期間限定】8.4.11-RP047 のバイナリパッケージ一般配布中 (MySQL-RPの8.4到達記念)

 2025年5月から行っていた、8.0以降の性能回復活動(MySQL-RP)は、遂に現役バージョンの8.4に到達し、RP-8.4は、RP-8.0と大体同等の性能を確保できました。(とはいえ、まだ一部怪しいところはありますが、性能は十分。)

 8.4はLTSとはいえ現役バージョンなので、MySQL-RPへのソースコードマージのコストとリスクを減らすため、RP-8.4ではPGOビルドの性能を基準としています。(PGOビルドで補正可能なソースコード変更は止めて、コードの差異を減らしています。)

 ということで、支援者配布用にPGOビルドパッケージを制作することにしまして…
ついに(!)

  • (一応)現行現役のバージョン
  • (世界で最も長くMySQLの性能を見てきた私の)納得の行く性能
[さらに読む]
InnoDBのCHECK TABLEが何をやっているのかざっと見てみたメモ

MySQL 8.0.46 ベースに見ていく。

まずは俺の好きな sql/sql_yacc.yy からダイブ。 CHECK TABLE の定義はこのへん。

 9627 check_table_stmt:
 9628           CHECK_SYM table_or_tables table_list opt_mi_check_types
 9629           {
 9630             $$= NEW_PTN PT_check_table_stmt(YYMEM_ROOT, $3,
 9631                                             $4.flags, $4.sql_flags);
 9632           }
 9633         ;
 9634
 9635 opt_mi_check_types:
 9636           %empty { $$.flags = T_MEDIUM; $$.sql_flags= 0; }
 9637         | mi_check_types
 9638         ;
 9639
 9640 mi_check_types:
 9641           mi_check_type
 9642         | mi_check_type mi_check_types
 9643           {
 9644             $$.flags= $1.flags | $2.flags;
 9645             $$.sql_flags= …
[さらに読む]
ALTER TABLEがMetadata Lockで詰まらされた時に検知する何か

TL;DR

[さらに読む]
Group ReplicationでのExecuted_Gtid_Setの進み方

TL;DR

  • たとえシングルプライマリモードだろうと、GTIDは「そのマシンが使うレンジ」が先に割り当てられて、その中からGTIDを払い出していく
  • 元プライマリが使っていたGTIDレンジは、割り当てられたレンジが使い切られない限り、再びプライマリに戻った時に再利用する。

yt-sandbox

[さらに読む]
Maxwell で MySQL の バイナリログ を JSON に変換する

バイナリログからデータを吸い出したいケース

MySQL の障害復旧というと、まずバックアップからの復元(PITR)が思い付きます。 しかし実際の運用では、データベース全体を過去の時点へ戻したいとは限りません。

例えば、アプリケーションのバグなどで、レコードごとに異なるタイミングで誤った更新が行われることがあります。このような場合、レコードごとに異なる時点のデータが必要になります。

このような場合に役立つのがバイナリログ( binlog )です。 バイナリログ には INSERT、UPDATE、DELETE といった変更履歴が記録されているため、

  • どのレコードが
  • いつ
  • どのように変更されたか

を後から追跡できます。

バイナリログの形式

binlog …

[さらに読む]
オープンソースカンファレンス2026仙台に参加

2026年6月6日に開催された OSC2026 Sendai(オープンソースカンファレンス2026仙台)に参加してきました。event.ospn.jp ospn.connpass.com 久々の仙台開催 仙台での開催が14年ぶり。幹事団をひっぱっていた方が並ならぬ熱意を持って開催の調整や広報など、イベントが盛り上がるためのお膳立てをしてくれました。特に「学生さんにいっぱい来てほしい」は、他の地域のOSCと比べても(単位を与える等のあめ玉なしとしては)かなり大成功なほうだったんじゃないでしょうか。若い人がうろうろしていて、セミナー聞いてくれて、あちこちのブースで興味深そうに話を聞いて回っているの…

MySQLの新バージョン番号候補考察

注:本記事のアイデアは採用されませんでした。新しいリリース番号ルール(カレンダーモデル)はOracleの記事を参照ください。 blogs.oracle.com いまMySQLが変わっている。 変わっていると言っても、ストレンジじゃなくて、チェンジです。 Enterprise版だけに大切に囲っていた機能を、突如、Community版にも開放すると宣言し、実際に公開したり、この数年間ずっとヒートエブ!ヒートエブ!とクラウドにうつつを抜かして単体MySQLを控えめに言っても蔑ろにしていたと言わざるを得ない状況だったのが突如 「回帰」する素振りを見せたり、急に、コミュニティ大事です!色々聞かせてくださ…

メタデータロックの競合時にDDL実行を最優先するパッチを作った

メタデータロックとは

メタデータロックとはトランザクションの実行中に、そのトランザクションで利用したスキーマやテーブル定義などのメタデータが変更されないように取得するロックです。
DDLの実行時には、テーブル定義などのメタ情報に対するロックである、排他(X)レベルのメタデータロック(MDL)を取得します。 また、ALTER TABLE ADD COLUMN ...などの一部のDDLの実行開始時にXロックを取り、その後他のDMLを並列で実行できるようにロックレベルをダウングレードして、DDL完了時に再度Xロックを取得する仕組みで2回排他ロックを取得したりします。

[さらに読む]
MySQL GIS拡張関数: STX_AsSvg

自作の、Spatial(GIS)関連の関数をMySQLに追加するプラグインの関数をひとつひとつ動作確認しながら紹介するシリーズ。 https://sakaik.hateblo.jp/entry/20260215/mysql_spatial_functions_plugin STX_AsSvg(geom [, rel [, prec]]) ジオメトリをSVGパースデータに変換する。 動作紹介 正直、正しく動作しているかどうかよくわからないので、ネット上に存在した他システムの実行例を参考に試してみた。 (PolarDBドキュメントより:https://www.alibabacloud.com/he…

MySQL GIS拡張関数: STX_Segmentize

自作の、Spatial(GIS)関連の関数をMySQLに追加するプラグインの関数をひとつひとつ動作確認しながら紹介するシリーズ。 https://sakaik.hateblo.jp/entry/20260215/mysql_spatial_functions_plugin STX_Segmentize(geom, max_length) 動作紹介 一辺が10の正方形を、ひとつの線が「6」を越えないように分割 → なるべく等分になるように頑張ってくれるので各辺5の長さのところに中間点を打ったPOLYGONになる SET @g=ST_GeomFromText('POLYGON((0 0, 10 0…

« Previous | Next »