日本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 8.0.x はパッチレベルのリリースで機能追加がされていくんだけど、マニュアルは常に 8.0 の最新版しか公開されてない。 MySQL は OSS だけど、MySQL のマニュアルは自由なライセンスではないしリポジトリも公開されてない。 ライセンスは自由でなくてもせめてリポジトリが公開されてれば、古いバージョンのマニュアルを見れたり差分を表示できるんだけどなー。
しかたないので自分でなんとかしてみる。
MySQL のマニュアルは何かの形式(XMLと聞いたような気がする)から変換して作られているのだけど、ソースは公開されてない。 HTML は https://downloads.mysql.com/docs/refman-8.0-en.html-chapter.tar.gz …
[さらに読む]オラクルさん主催の MySQL Technology Cafe #11 にて、登壇させていただきました。今回のテーマは「MySQL 8.0 日本語ドキュメント」。お声がけをいただいたときに、ちょうど、ドキュメントについて語りたい内容を持っていたため、発表枠のお時間を頂戴してお話をさせていただきました。oracle-code-tokyo-dev.connpass.com 今回の私の発表は、内容三本立て (1)MySQL 8.0 の日本語マニュアル嬉しいよ嬉しいよ超嬉しいよ!!!! (2)過去バージョンの日本語マニュアルのおもいで (3)最近のマニュアルの更新差分を眺めてるけど、面白いよ! 発表資…
MySQL 8.0.23 のリリースノートを見ながらわいわい言う勉強会を開催しました。mysql.connpass.com 「リリースノートでわいわい言う勉強会」略称リノベも、今回で4回目の開催になりました。MySQLのリリースはおよそ3ヶ月に1度なので、つまり、ちょうど一年分、開催を続けることができたということになります。いつも参加してくださっている皆さん、そして、余りなじみのない会でちょっと怖いけど勇気を持って飛び込んでくださってた参加者のみなさん、ありがとうございます。 ずっと以前よりこういう勉強会をやりたいと思っていたものが、勉強会のオンライン化により実現しやすくなりました。90分限定…