※ この記事はMySQL Casual Advent Calendar 2017の11日目の記事です。
A critique of ANSI SQL isolation levelsを読んで(読んだブログ)、MySQL(innodb)で分離レベルごとのanomaly(不整合)の発生について実験しました。使ったのはDockerで立てられる 8.0.3-rc-log MySQL Community Sereverです。
ここでは上記の論文であげられているanomalyと …
[さらに読む]※ この記事はMySQL Casual Advent Calendar 2017の11日目の記事です。
A critique of ANSI SQL isolation levelsを読んで(読んだブログ)、MySQL(innodb)で分離レベルごとのanomaly(不整合)の発生について実験しました。使ったのはDockerで立てられる 8.0.3-rc-log MySQL Community Sereverです。
ここでは上記の論文であげられているanomalyと …
[さらに読む]この記事は MySQL Casual Advent Calendar 2017 の8日目の記事です! 1週間前の記事、 日々の覚書: これが多分最後の「MySQL Fabricつらい」 でお焚き上げをしたMySQL Fabricですが、 世の中の物好きな会社 がMySQL Fabricをフォークして mikasafabric for MySQL として使っています。 今日はそのmikasafabric つらい つらくない話をします。ハンカチの用意はよろしいでしょうか。 取り敢えずぶっちゃけた話をするとPythonつらい。
この記事は ConoHa Advent Calendar 2017 の4日目の記事です。 「ConoHaの上で」と銘打ってはいますが、俺の普段使いのLinux環境がConoHaだからというだけで、VirtualBoxだろうとEC2だろうとCentOS 7.4なら全部似たような結果になると思います というわけでまずは吊るしのConoHaのVPSインスタンスを作ります。 最近のMySQLはビルドに結構メモリーを食うのでメモリーは1GBのものを選びました(512MBだと、途中でOOM Killerに殺されるかまたは永遠にビルドが終わらないと思います。5.7とそれ以降) WEBからポチポチしてSSHでログインできたら、さっさとビルドを開始します。 まずは 5.0からいきましょう。 2017/12/04現在、サポートが継続されているMySQLは5.5, 5.6, 5.7の3系統です。 …
[さらに読む]
MySQL 8.0でカジュアルにウインドウ関数(rank, dense_rank)
本エントリはMySQL Casual Advent Calendar 2017の3日目です。
MySQL 8.0ではウインドウ関数がサポートされる予定である最新の8.0.3 RCで実際に動作させることが可能です。
12.19.1 Window Function Descriptions
高度な使い方の代表例としては、以下のように自己結合の代替する、というものですが、
津島博士のパフォーマンス講座 第47回 自己結合と分析ファンクションについて
…
このエントリーは OSS紹介 Advent Calendar 2017 の3日目の記事です。 ytkit
はMySQLの運用に使いそうなちょっとしたスクリプト群です。
2017/12/03現在、ytkitには2つのスクリプトが存在しています。 yt-binlog-groupby
mysqlbinlog
の出力結果をパイプで受け取って、テーブルや時間単位でGROUP
BYするためのスクリプトです。 前身は mysqlbinlog_lister.pl
というスクリプトで、これをテスタブルに書き直して機能を追加したものが yt-binlog-groupby
になります。 お手軽にMySQLのバイナリーログを集計するスクリプトのはなし | GMOメディア …
やあ (´・ω・`)
ようこそ、MySQL Fabricのお墓へ。
このサキーラはサービスだから、まず飲んで落ち着いて欲しい。
うん、「やっぱり」なんだ。済まない。
地獄の沙汰もって言うしね、謝って許してもらおうとも思っていない。
でも、このスレタイを見たとき、君は、きっと言葉では言い表せない
「めきめき」みたいなものを感じてくれたと思う。
殺伐とした世の中で、そういう気持ちを忘れないで欲しい
そう思って、この記事を書いたんだ。 じゃあ、注文を聞こうか。 さて本題。 この記事は MySQL Casual Advent Calendar 2017 の1日目の記事です。 …
11/28 に Haskell で MySQL の Xプロトコルを実装したという話が聴ける Club MySQL というイベントがあったので参加してきました。
MySQLのプロトコルの話ということで、平日の夜とは言え東京で参加者9人(発表者含む)というマニアックな集まりでした。
自分も1年前に Ruby で MySQL Xプロトコルを実装していたのですが、このツイートを最後に中断していたのでした。
MySQL X Protocol で Collection の追加はできるようになったが、検索がめんどくさい。条件文字列のパースはクライアントで行う必要があるんだな。
— とみたまさひろ💎🐬 (@tmtms) …
[さらに読む]想定ケースとしては1億行くらいのテーブルから7000万行くらい消すクエリーを、レプリケーションが遅れずバッファプールも食い切らない程度にちまちま消すようにする。
DELETE FROM t1 WHERE hoge = 1 AND last_update < '2017-11-28'
「ちまちま削除する」なので、トランザクションでAll or Nothingを保証したい場合は使えない。
id
をプライマリーキー(ただしサロゲートキーかどうかは問わない)、
hoge
, last_update
が本来消し込みに使いたいカラムだとする。
プライマリーキー(またはユニークキー)がないテーブルのことは考えない。 KEY(hoge, last_update) がある場合
DELETE .. WHERE id IN ..
の形に落とし込む