日本MySQLユーザ会として、「MySQLユーザ会会(MyNA会)2021年3月」を開催しました。 mysql.connpass.com 通常、毎回4~5人くらい発表してくれるといいなぁと思っているMyNA会、今回登壇くださったのは3名とやや少なめではありましたが、そのぶん、普段聞けない立場からのお話、残念(自称)な感じながらも楽しんでいるお話(いやむしろ楽しんでいるのは周りの人かw)、MySQLの内部動作に関する深いお話など、濃厚なお話を聞かせていただける時間となりました。発表くださったみなさん、質問等で盛り上げてくださった皆さん、ありがとうございました。 つたない進行のせいか、参加者の皆さ…
デッドロックは複数のトランザクションが複数のレコードをロックする場合にタイミングによって発生する。
- トランザクションAがレコード1をロック→成功
- トランザクションBがレコード2をロック→成功
- トランザクションAがレコード2をロック→2のロックの解放待ち
- トランザクションBがレコード1をロック→1のロックの解放待ち
AもBも互いのロックの解放を待つことになってデッドロックする。 MySQLはデッドロックを検出すると、片方のトランザクションでデッドロックエラーを発生させて強制的にトランザクションを終了させる。
たとえば、次のような2つのトランザクションを同時に動かすとデッドロックエラーが発生する。
CREATE TABLE t (a INT, val INT, …[さらに読む]
はじめに
自分用にテーブルが断片化してるか否かを確認する方法を書いてみました。
もし他にこんなのあるよー、って話あれば教えてください。
SHOW TABLE STATUS
- Data_freeを見ると良い
- innodb_file_per_tableオプションが有効であるべき
mysql> SHOW TABLE STATUS FROM test\G
*************************** 1. row ***************************
Name: t1
Engine: InnoDB
Version: 10
Row_format: Dynamic
Rows: 0
Avg_row_length: 0
Data_length: 98304
Max_data_length: 0
Index_length: 16384
Data_free: 0
Auto_increment: 1015
Create_time: 2020-11-19 12:38:12
Update_time: 2020-11-19 12:47:15
Check_time: NULL
Collation: utf8mb4_0900_ai_ci
Checksum: NULL
Create_options:
Comment:
1 row …[さらに読む]
Japan.pm 2021 のトークセッションで喋らせてもらったネタ。
Perlの話は DBI->connect くらいしか出てこないのでPerl
Mongersでなくてもお楽しみいただけるかと思います。
InnoDB Clusterのキモは何と言っても「MySQLとMySQL Routerはそれぞれ別の観点から別の仕事をしている」というところで(ついでに言うなら、オーケストレーター的に働くMySQL Shellは一度動き出してしまえば常駐しなくても良いところ)これを理解しておくと理解が色々と捗る。
このへんの機能も「MySQL Routerの」機能であって、グループレプリケーションはこの辺の機能には一切関係ない。
- …
MySQL 8.0.23で、Spatial(GIS)関連機能として、フレシェ距離を求める関数 ST_GrechetDistance() と、ハウスドルフ距離を求める関数 ST_HausdorffDistance() が追加されました。どちらも、2つのジオメトリどうしの類似度を求める関数のようですが、今ひとつよく分からないので、今日は主にフレシェ距離を中心に色々と動作を試してみて、「こういうことかな?」の理解を試みました。 想像して、試して、結果に納得する、という作業ですので、正しくない理解を書いているかもしれません。お気づきの方は、やさしくお教えいただければ幸いです。 フレシェ距離とは ざっく…
はじめに グループレプリケーション構成内のプライマリを非同期レプリケーションのレプリカがソースとしてみていたときに プライマリが変更された時に非同期レプリケーションのレプリカが同期元のソースを自動で切り替えるそうです
MySQL Server’s asynchro...
mysql_options(mysql, MYSQL_SET_CHARSET_NAME, cs_name) だけして mysql_real_connect(mysql, ...) した後SHOW VARIABLESしてみたら接続のcharsetが設定済みの挙動をするんやけどmysql_real_connectからの一連のコード読んでもどこでそれが起きるのかわからん誰かたすけて🥲https://t.co/ZScoD3tIQ8
— Ryuta Kamizono (@kamipo) February 20, 2021
…
[さらに読む]MySQL 8.0.x はパッチレベルのリリースで機能追加がされていくんだけど、マニュアルは常に 8.0 の最新版しか公開されてない。 MySQL は OSS だけど、MySQL のマニュアルは自由なライセンスではないしリポジトリも公開されてない。 ライセンスは自由でなくてもせめてリポジトリが公開されてれば、古いバージョンのマニュアルを見れたり差分を表示できるんだけどなー。
しかたないので自分でなんとかしてみる。
MySQL のマニュアルは何かの形式(XMLと聞いたような気がする)から変換して作られているのだけど、ソースは公開されてない。 HTML は https://downloads.mysql.com/docs/refman-8.0-en.html-chapter.tar.gz …
[さらに読む]