2021/12/03

Perlで作られたMySQL用の何かについて

この記事は Perl Advent Calendar 2021MySQL Advent Calendar 2021 の3日目の記事です。

Perl Advent Calendar 2021 の1日目2日目が @hkoba さんのいい話だった流れを遮って、突然のユルいプログラム紹介です。

MySQL Advent Calendar 2021 の2日目は @meijik さんでした。


俺はMySQLが好きでPerlも好きなので、MySQL関連の何かがPerlで書かれているとちょっと嬉しくなります。

Perlはそんなに得意ではないですが、MySQLに絡んでいれば大体何となくわかるものです。 innotop がそれを教えてくれました(俺が %hash=(); @hash{"hoge", "fuga"}= qw{ a b } の記法を知ったのはinnotopが使っていたからです… )

逆に、Perlは読めるけどMySQLはちょっと……な人も、Perlを取っ掛かりにMySQLに興味を持ってもらえたらうれしいなあと思います。

というわけで、俺が知っている限りのMySQL && Perlなものをユルく紹介だけしていきます。

innotop

  • topライクに SHOW PROCESSLISTSHOW ENGINE INNODB STATUS をリアルタイム表示するためのプログラム
  • 最近 myStatusgo に頼ることが多いけれど、細やかに見るなら俺はやっぱりinnotopが好き

percona-toolkit

  • Perlのみならず、一部Goとかシェルスクリプトも混じっている
  • 有名どころのpt-query-digestやpt-online-schema-changeはPerl
  • libの下を見るとヒャーってなるけど、binの下のはファットパックされてるので読むならbinの下のを直接読むのが良い気がする

MHA for MySQL

  • もうメンテはされていないけれど、有名なあのアレ
  • 「一番進んでいるレプリカからリレーログを引っこ抜いて他に適用するなんてどうやってやってんだろう」がわかる、Perlが読めれば

MMM for MySQL

  • もうメンテはされていない、古いあのアレ

MySQLTuner

  • 一部に根強い人気のアレ。ちゃんとメンテされている。
  • 「この値を調整しろというのはいいけど、どこから算出したのそれ?」がわかる、Perlが読めれば

mysqldumpslow

  • 公式パッケージに付属しているあのアレ
  • 実はPerl製だったんです

MySQL::Sandbox

  • dbdeployer の前身、俺はこっちの方が好き(Perlだから)
  • ただまあもう乗り換え時かな…

Test::mysqld

  • そもそもPerlのテストスクリプト内でクリーンなmysqldを起動するためのものだからちょっと番外風味
  • 趣味のスクリプト をテストするのにとても助かっています

他にもあったら教えてください!

明日は @mackee_w さんと @tom_bo さんです!

あsあ

0 件のコメント :

コメントを投稿