UDFをSQLに変換する仕組みを作ることで大幅に性能が改善したという研究の紹介

この記事はデータベース・システム系 Advent Calendar 2023の記事です。 今回はFroid: Optimization of Imperative Programs in a Relational Databaseという論文の内容を紹介します。データベースエンジンの詳細な実装を知らなくてもイメージがつかみやすい…

MySQLのcollationの動作を体系的に理解する

はじめに collationとは二つの文字の間の順序を定義するものです。こう言われるととても単純に聞こえるのですが、MySQLのcollationの詳細な動作は実は結構複雑です。 この記事はcollationの挙動に関する体系的な解説と様々な具体例を元にcollationに対する理…

MySQLエラー調査: Table definition has changed, please retry transaction

はじめに こんにちは、id:shallow1729です。小ネタですが、先日”ERROR 1412 (HY000): Table definition has changed, please retry transaction”というエラーに出会ったのでそれの調査をします。MySQL8.0.31をベースにします。 エラーの意味 まずエラーメッ…

データ変更を伴うバッチ処理を書く時に考慮していること

こんにちは、id:shallow1729です。最近はインフラ寄りなお仕事をよくやっていますがこれまでにいくつかデータ移行やデータ基盤構築などのバッチ処理のお仕事をしてきました。以前にも一度そういった経験を元に記事を書いたのですが、MySQLやシステムに関する…

pt-online-schema-changeによる負荷を好きなメトリクスでコントロールする

こんにちは、id:shallow1729です。この記事はMySQL Advent Calendar 202119日目のものです。昨日はid:next4us-tiさんでMySQL8.0を再起動するとアプリからつながらなくなる理由でした。インターネットって情報はたくさんあるけど分かってないと検索できないケ…

InnoDBのMVCCのガベージコレクションについて

こんにちは、shallow1729:detailです。今回は先日MyNA会というイベントで発表したMySQLの標準のストレージエンジンであるInnoDBのMVCCのガベージコレクションについて書こうと思います。発表自体もアーカイブされているので以下から見る事ができます。 「日…

リンク集

データベース関連->database カテゴリーの記事一覧 - shallowな暮らし プログラミングコンテスト関連->procon カテゴリーの記事一覧 - shallowな暮らし 雑多な開発テクニック-> development カテゴリーの記事一覧 - shallowな暮らし

MVCCとInnoDBでの実装について

こんにちは。id:shallow1729です。先日はredo logを中心にストレージエンジンについて解説を行いましたが、今回は同時実行制御、特にMySQLなど多くのデータベースで採用されているMultiversion Concurrency Control(MVCC)という技術にフォーカスしようと思い…

ストレージエンジンの話 ~InnoDBのredo logをざっくり理解する~

こんにちは。id:shallow1729です。最近Database Reliability Engineerというお仕事を始めたのでデータベースの勉強をしたりMySQLのソースコードを読んだりしています。仕事でMySQLが標準で用いているInnoDBのソースコードを読む機会があったのでなんかアウト…

転職しました

別に退職/入社エントリーみたいなのを書くつもりは無かったんですけど、今後ここに何か書いた事が何か良くない方向に行った時に前の所属の人間の言葉として広まって迷惑かけたら嫌だなと思ってという感じで書いたエントリーです。1月いっぱいで退職しました…

Atcoderで緑色になりました

8月に始めて半年で緑になれました。緑は大した事ないって声をたまに聞くのですが普通にプログラミングの実装能力を求められると思うので緑コーダーですって言われたら僕ならエンジニアとして信頼するだろうなと思いました。 https://atcoder.jp/users/shallo…

AtCoder Beginner Contest 186に参加しました!

結果 atcoder.jp ABCDの四問解けました。E解けそうだったので悔しい... 振り返り Cまでは一瞬でした。 C - Unlucky 7 は8進数だとpythonはそういうメソッドがあるので脳死で解けてしまいましたね...今後のために任意のn進数への変換は何かライブラリ作ってお…

Atcoder初心者が成績アップに繋がったと感じた考え方の工夫

こんにちは。id:shallow1729です!この記事ははてなエンジニア Advent Calendar 2020の7日目の記事です。 qiita.com 昨日はid:stefafafanさんで「iTerm2の機能を使いこなして日頃の作業の効率をあげたい2020」でした! stefafafan.hatenablog.com iTerm2僕も…

AtCoder Beginner Contest 175に参加しました! + 最近やってたこと

タイトルの通り先週末はAtCoder Beginner Contest 175に参加しましたー。 ABCの三問しか解けなくて悔しかったけどパフォーマンスは1119なので緑ぐらいのパフォーマンスにはなりました! C問題を開始20分で解けて気分良くD問題に行けたのですが、結局Dをうま…

AtCorderに初めて参加した!!

あんまり人に読ませる文章ではないです。 感想: 楽しかった!!! 前職はプログラミングコンテストが盛んな会社だった。黄色とか大会での優勝経験がある人とかが何人もいて、みんなすごいなーと思いつつ、自分の仕事はアルゴリズムがそれほど陽に出てこなか…

契約による設計とテスト駆動開発で大きいタスクを楽にする

こんにちは。id:shallow1729です。先日一ヶ月ぐらいの工数のかかる大きめのタスクを担当しました。そのタスクは機能に関連するテーブルやエラーになる条件が多く、初めはどこから手をつけたらいいか分からない状態でした。今回紹介する契約による設計とテス…

異なるシステム間での大量データの同期について

2022/03/19 追記 続編みたいなやつ書きました。 shallow1729.hatenablog.com はじめに メリークリスマス!! はてなのエンジニアのid:shallow1729です。この記事ははてなエンジニア Advent Calendar 2019の25日目の記事です。昨日はid:hitode909さんの以下の記…

読書中: 低レベルプログラミング (Igor Zhirkov)

始めに注意ですが、これはレビューのつもりでは書いてなくて、今ざっくりとこんな事に興味があるとか最近考えている事について本をテーマに喋ってるだけです。まだレビューが書けるほど読めてないですが、満足するぐらい読んだら何か書くかもしれません。 am…