amamanamam

データベースと仲良くなりたいです

2023-09-01から1ヶ月間の記事一覧

Connection LifecycleのConnection Phaseの話

MySQL: Connection Phaseを読んでフムフムと思ったことを実験を交えて書き記すことにした。 MySQL側ではクライアントからTCP接続が確立してから以下のようなフェーズを辿る https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_connection_lif…

トランザクションの同時実行(静的アプローチ)

RDB

この記事は「リレーショナルデータベース入門 第3版」のトランザクションの同時実行の章の一部のサーベイです。 はてなのtex記法が上手くいかないので、定義の部分は別でtexで書いたもののキャプチャを貼るという暴挙に出ています トランザクションの同時実…

statusカラムを用意する前に考えたいことは....の話

statusカラムと題に載せているが、複数の定数を選択肢として持つような所謂enum型のカラムに関することを述べていく(statusという名で定義されることが多いような気がしたので) そのようなstatus系のカラムは楽で便利が故によく提案されると思うのだが、追…

「テーブルを開く」とは何ぞやの話

追うぞ 今回は「テーブルを開く」とは何を指す言葉なのかを追う。 fopenとやっていることは同じなら、ハンドラを作成してそのハンドラを使って各種テーブル操作ができる状態にすることである(と思う)。同じ感覚でいいのか確かめていく。 ha_innobase::open…

EXPLAIN FORMAT=JSONに表示されるコストを理解する旅に出た話

環境 mysql> select version(); +--------------+ | version() | +--------------+ | 8.0.28-debug | +--------------+ 1 row in set (0.00 sec) mysql> show create table test\G *************************** 1. row *************************** Table: t…

GTIDを用いたレプリケーションについての話

※過去qiitaに書いてた記事のお引越し https://qiita.com/boro1234/items/797b97fc06e7c688b7b2 GTIDについての説明・概要 この章ではGTIDについて簡単に解説します。 まずGTIDとは何か? GTID(Global Transaction ID)とはその名の通り、各トランザクションに…

INSERT IGNOREは何のエラーを握りつぶす子なのかの話

INSERT IGNOREとは何か 公式での説明 INSERT IGNOREを使えば、INSERT実行中の無視可能なエラーは無視してくれる。 重複エラーだけ握り潰してくれる認識だったがそうではない様子。 他に何のエラーが無視可能なんだろうか https://dev.mysql.com/doc/refman/8…