tom__bo’s Blog

MySQL!! MySQL!! @tom__bo

MySQLのBug Reportが成功した

MySQLのBug Report もう一週間経ったけど、今回出したバグレポートでドキュメントが修正されました。めでたい。 単にドキュメントが修正されただけですが、せっかくなのでMySQLにBug reportするまでの流れを書いておきます。 アカウント登録 シュッと登録し…

ALTER TABLEにかかる実行時間を見積もりたい

運用をしているとダウンタイムかありかに関わらず、alter tableにどれくらいの時間がかかるのか作業前に把握したいことはよくあります。 各種statusを見ることで一定時間でどれくらいの行を書き換えるかを把握することはでき、作業を始めてからであれば、あ…

MySQL Weekly 始めました

僕自身のMySQLの勉強、キャッチアップのためにまとめリストを作り始めましたが、せっかくなので公開してみます。 mysql-weekly.hatenablog.com です。(アイコン検討中です) MySQL Weeklyでは1週間のMySQLに関する情報をまとめて、簡単なsummaryを作っていき…

Percona LIVE 2019参加してきた (2日目)

Percona LIVE 2019に参加してきました。 前回の続きで初日(Tutorial Day)から Session Day 1, 2の3日間のうち2日目(Session Day 1)の内容です。 おそらく発表のスライドが公開されることと思いますが、全体が非公開になるものや非公開になるページがあるかも…

MySQL Casual Talks #11で話してきた

CREATE TABLE文のParserを作って、parseしたテーブル定義からテーブルのディスクサイズを見積もるツールを作ったので、発表してきた。 table-size-estimatorという名前で、Githubに上げている github.com ツールの骨組みとREADMEにあるサブセットのパースま…

Percona LIVE 2019参加してきた (1日目)

Percona LIVE 2019に参加してきました。 初日(Tutorial Day)から Session Day 1/2の3日間です。 会社の仕事として参加したので、会社様様です。 社内でのレポートは別途書きますが、この記事では個人的に僕が参加したセッションの概要をざっくり紹介します。…

MySQL 8.0 Functional Key Parts

MySQL8.0の機能を調べてまとめている。 Functional Key Partsについて読んだまとめ。 dev.mysql.com MySQL 8.0.13から関数index(functional key parts)がサポートされる。 5.7以前ではカラムの値そのものかカラムのprefixでしかindexを作成することができな…

MySQL 8.0 Descending index

MySQL8.0の機能を調べてまとめている。 Descending indexについて読んだまとめ。 dev.mysql.com MySQL 8.0では、Descending index(DESC, 降順のindex)がサポートされるようになった。 これまではASC(昇順)のindexを逆順にスキャンすることはできたが、パフォ…

MySQL 8.0 Invisible indexes

MySQL8.0の機能を調べてまとめている。 invisible indexesについて読んだまとめ。 dev.mysql.com MySQL 8.0からはinvisible indexesがサポートされる。 invisible indexはoptimizerに使われないindexのこと。 optimizerから見て、visible(利用可能)かinvisib…

MySQL 8.0 Derived Table, Lateral Derived Table

MySQL8.0の機能を調べてまとめている。 Derived Table, Lateral Derived Tableについて読んだまとめ。 DERIVED TABLE LATERAL DERIVED TABLESや8.0の新機能を説明する前に、DERIVED TABLEについて説明する dev.mysql.com DERIVED TABLEとはFROM句のscope内で…

NOT NULL指定しないとカラムの確保するストレージサイズが1byte増える

NULLを許容するカラムをつくるとそれぞれのカラムで必要なストレージサイズが1byte増えていた。 以下はexplainでkey長を見てみた様子。 INTは4byteを確保する訳だけど、NULL (DEFAULT NULL)指定したら各カラムで1byte増えているのがわかる。 NULLABLEかの判…

MySQL 8.0 GROUP BY関連の新機能

MySQL8.0の機能を調べてまとめている。 タイトルどおりGROUP BY ... WITH ROLLUPについてドキュメントを読んだまとめ。 GROUP BYで指定したカラム自体の全体の集約(超集約: super-aggregate)結果を返すWITH ROLLUP句で大きく2点の改良と機能追加があった. OR…

MySQL 8.0 新機能 Window Function

MySQL 8.0の新機能について調べてまとめています。 今回はWindow関数に関する章(https://dev.mysql.com/doc/refman/8.0/en/window-functions.html )を読んだまとめです。 window関数はクエリの結果から行ごとにその行に関連する計算を行う機能。 GROUP BYで…

レアジョブ英会話はじめて6ヶ月経った

前回の2ヶ月たった記事だとskype英会話と書いていた。 http://tombo2.hatenablog.com/entry/2018/11/11/194143 前回の記事を読み直すとなかなか良いことが書いてあったので、半年ごとくらいで書いていくつもり。 状況 レアジョブ英会話の1日25分コースを受講…

MySQL 8.0新機能 CTE (Common Table Expression)

MySQL 8.0の新機能について調べてまとめました。 この記事は公式ドキュメントの以下のページの読んだまとめです。 dev.mysql.com サンプルのクエリもほぼドキュメントのものですが、手元の8.0.15で実行した結果をつけている場合もあります。場合によって説明…

RockstarらしいPITRの検証

where句なしでupdate文を実行するというオペミスがあった際にdummyのrelay_log(binlogをrenameしたもの)を使って、1ホスト単体でMTSを利用した一人replication的なことをしてPITRする方法の検証をしてみた。 何いってんだと思ったら下のlefredの発表資料を見…

"詳解MySQL5.7"社内読書会を終えて

この記事はMySQL Casual Advent Calendar 2018 10日目の記事です。 皆さんMySQLの学習はどのようにされていますか? MySQLを含めたデータベースが落ちることはそのままサービスの停止につながることが多く、安定運用にはそれなりの知識と経験が必要だと思い…

MySQLのパケットを読んでいく

この記事はMySQL Casual Advent Calendar 2018 10日目の記事です。 最近golangでMySQLのclient/serverプロトコルのでシリアライザを作っていて、この記事ではclient/serverプロトコルを解説しつつ、そのデシリアライザの紹介をしようと思っていました。 です…

筋トレ始めて2年経った

2年経ったらしい。 これまでの経過 3ヶ月 tombo2.hatenablog.com 半年 tombo2.hatenablog.com 一年 tombo2.hatenablog.com 一年半 tombo2.hatenablog.com 進捗 だめです。。。 ベンチプレスMaxおそらく 90kg スクワットMax おそらく100kg 雑感 筋トレ何が楽…

Skype英会話始めて2ヶ月たった

継続的な努力が必要な目標を達成するには、定期的なメモや経過報告をまとめることはかなり有効だと思っている。 これは研究でもプログラミングでも筋トレでも何でもそうで、具体的な数値で経過を記録することができないたぐいのものでも、適当な振り返りを書…

リレーショナル・データベースの"リレーション"とは何か?

リレーショナル・データベースにおけるリレーションとは何なのかについて調べ、リレーショナルモデルに基づいたデータベースを利用することのメリットは何なのかを考えてみた。 これから書く内容はブログ最後にまとめた参考文献の、リレーショナルモデルに関…

C.J.Dateのデータベース実践講義読んだ

「データベース実践講義」をかいつまんで読んだ。 www.oreilly.co.jp 増永 良文著の「リレーショナルデータベース入門」を読んでいて、リレーショナルモデルの説明部分の比較を主な目的として読んだ。 あとで振り返ると思うので、箇条書きで特に良かった部分…

Ergodox EZが簡単にキースイッチ交換可能になってた

最近いくつかのキーの反応が鈍くなってきて、はんだ付け入門しようかと迷っていたら2018年からキースイッチがハンダ付け不要で交換できるようになっていた。 たいした話ではないけど、買うとどんな感じなのかをほぼ写真で説明していく。 ergodox-ez.com Chan…

筋トレ初めて1年半が経った、これまで買ったものとYoutube

もう一年半はとっくに過ぎているけど、久々に書いた。 進捗 Youtube これまで買ったもの 懸垂機(マルチジム) 片手30kgダンベル スクワット台 フラットベンチ ベンチセーフティ バーベル(30kgセット) バーベル(100kgセット) プレート(7.5x2枚) ミニロッカー…

MySQLで実行された全てのクエリを取得する

MySQLで実行された全てのクエリを把握する方法を挙げてみる。 いくつか方法はあるが、負荷の高い環境でクエリをとるにはうするのが良いだろうか? パフォーマンスチューニングが主たる目的なので、Restoreからロールフォワードすることは考えない。 SELECT文…

ストレージの簡易ベンチマーク取ってみた

今回組んだPCでI/Oの簡易ベンチマークを取ってみた。 一気に全部の実験をしてなくて、デバイス名・マウントポイントは不定 storage HDD SSD その1 SSD その2 M.2 SSD 環境 ベンチマーク gnome-disks dd hdparm 感想 storage HDD 【Amazon.co.jp限定】WD HDD …

新Desktop PC

PC

初任給入ったので、これを機に家でもデスクトップPCを使おうと思ってPC組んだ。 core i9のCPUで10コア20スレッドくらいにしてみたかったけど、予算がないのとグリスバーガー状態で爆熱らしいので今回は見送った。 結果CPUはcore i7-8700(6コア12スレッド)。 …

最近気に入っているUML作図方法

これから作るものの構想を練ったり、システムの概要を共有したり相談したりするときに、UML(みたいな図)を使ってメモしていくやり方が気に入っている。 UMLといってもちゃんとUMLの記法に沿って仕様を完璧に書くことはあまりなくて、詳細まで書く必要がある…

MySQL(innodb)の分離レベルごとのanomalyについて実験した

※ この記事はMySQL Casual Advent Calendar 2017の11日目の記事です。 A critique of ANSI SQL isolation levelsを読んで(読んだブログ)、MySQL(innodb)で分離レベルごとのanomaly(不整合)の発生について実験しました。使ったのはDockerで立てられる 8.0.3-r…

MySQLでトランザクションの挙動を試すためのツールを作った

mytxという、トランザクション分離レベルの違いを調査したり、並列するトランザクションでどのようにロックがかけられているかを実験するためのツールを作りました。 mytxとは MySQLで分離レベルごとの挙動を実験しようとした時に、ウィンドウを複数開いて順…