database

アトミック性(Atomicity)とは何か

可視性/観測性に着目さた定義の仕方が秀逸と感じたので、メモとして残しておきます。 アトミック性という考え方に実務のなかで触れる場面は色々あります。たとえば、トランザクション処理を考える際のACID特性のA。 また、ある処理を並行で実行しても問題な…

MySQLサーバがクエリ実行時にCLientに返すパケットの構造

about 以下のMySQLの公式ドキュメントに記載の SELECT @@version_comment の実行結果として、返されるパケットの構造を図にまとめたメモになります 実際に同じ構造のパケットが返ってくるかどうか未確認のため、今度パケットキャプチャをし確認してみようと…

メモ:DATETIME型はMySQL 5.6からミリ秒の取り扱いが変わった

MySQL 5.6からミリ秒の取り扱いが変わった バージョンによって挙動が異なるので注意が必要です。 MySQL 5.5 までは、強制的に切り捨てされて格納、MySQL 5.6 以降は四捨五入されて格納されるという動作になっています。 doruby.jp 以下、実験ログ ysql> CREA…

読書メモ:データモデル大全

システム開発・刷新のための データモデル大全作者:渡辺幸三発売日: 2020/06/12メディア: Kindle版 本の概要 業務アプリケーションに使われる様々なDBのデータモデルを紹介&解説している本です ER図ではなくデータの具体例を付記することが可能な独自形式の…

innodb誕生までの歴史的な流れと内部仕様

業務の中でMySQLのバックエンドとして動くinnodbについて集中して調べる機会がありました。 innodbの歴史的な背景と、innodbの内部的な仕様についてメモを残しておこうと思います。 ※ANSI SQL 92の話と、innodb独自の話は将来的に分けたい。 1. 前提条件 2. …

innodbのインテンションロックとは何か

複数粒度ロック( Multiple Granularity Locking ) というLocking手法をベースにした処理がinnodbに独自実装されている? テーブルロック、行ロックなどのロックをかける対象の粒度のことを ロック粒度( locking granuality ) と呼ぶ事がある。複数粒度ロッキ…

innodb lock monitor

InnoDB lock monitorの有効化方法 (mysql 5.7以降??) 以下を実行後、 SHOW ENGINE INNODB STATUS\G set GLOBAL innodb_status_output=ON; set GLOBAL innodb_status_output_locks=ON; ロック種別の一覧 InnnoDB Lock Monitor上の表記 ロック種別 lock mode S…

SQL: CASE式の練習

以下の本を読んでいて、CASE文/式というものがあるのを知ったので試してみます。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ作者:ミック発売日: 2018/10/11メディア: Kindle版 対象となるテーブル mysqlがEXAMPLE DATABASEとして提供し…

『Database Internals』Chapter1の読書メモ

オライリー社にて2019年に出版の『Database Internals』のChapter1を読んだ際の読書メモです。 Database Internals: A Deep Dive into How Distributed Data Systems Work作者:Petrov, Alex発売日: 2019/10/15メディア: ペーパーバック Chapter1. Introcutio…

Garelaについての覚書

業務でPercona/Galeraで触る機会があり、いろいろと調べたので備忘的にメモです。 製品概要 MySQLを使ったMultiAct型クラスタを実現するために、Codership社が開発した外付けプラグインが Galera , それをパッケージングしたのが Percona [1] 更新(CUD)系の…

/* https://sunrise033.com/entry/hatena-blog-how-to-hierarchicalize-categories */