バベルの図書館は完成しない

Extended outer memory module
for my poor native memory.

Posts:
2022/02/13 クラビスの CTO になりました
2020/09/28 gendoc という YAML からドキュメントを生成するコマンドを作った
2020/09/13 ISUCON10 の予選を 7 位で通過した
2019/12/01 Puma の内部構造やアーキテクチャを追う
2019/05/27 Golang の正規表現ライブラリの処理の流れをざっくり掴む
2019/04/29 InnoDB の B+Tree Index について
2019/04/29 InnoDB における index page のデータ構造
2019/04/28 InnoDB はどうやってファイルにデータを保持するのか
2019/01/06 Designing Data-Intensive Applications を読んでいる
2019/01/03 年末年始に読んだ本について、など
2019/01/01 Ruby から ffi を使って Rust を呼ぶ
2018/11/10 ブラウザにおける状態の持ち方
2018/07/01 Rust で web アプリ、 或いは Rust における並列処理
2018/05/14 なぜテストを書くのか
2018/05/13 Rust で wasm 使って lifegame 書いた時のメモ
2018/03/12 qemu で raspbian のエミュレート(環境構築メモ)
2018/03/12 qemu で xv6 のエミュレート(環境構築メモ)
2018/03/03 Ruby の eval をちゃんと知る
2018/02/11 Web のコンセプト
2018/02/03 Rspec のまとめ
2018/02/03 Ruby を関数型っぽく扱う

B+ Tree

状態を持つ機構が全般的に好きだなと思っていて、まずは日常的に自分が触れる RDB に対する理解を深めようかなって思っている。(ずっと前から思っているんだけど進捗は芳しいわけではない)

今日は割と時間があったので以下の記事から始まるシリーズを読んだ。

https://postd.cc/how-does-a-rdb-work-1/

Part 3 の後半のトランザクションログとかの話まではなんとか読めて、 B+ Tree への理解がちょっと深まったのでよかった。

一般的なインデックスのデータ構造に対して、すごくざっくりとした理解は生まれたように思う。

けれど一方で MySQL というか InnoDB はクラスターインデックスというデータ構造を取るそうなのだけど、そこに関しては全くわかってないので次はそこのトピックを軸に攻めて行くといいかもしれない。

今いる環境はアプリケーションからデータベースに対して発行する個別の SQL に対する最適化の余地はまだ結構残っていそうで、なおかつデータベースへの負荷を下げるのはそれなりに価値のある仕事っぽい状況なので、こういう領域に力を入れようかなと思っているし、今やってる大きめのタスクが落ち着いたらもっと活発に進めていけるといいなあ。 (今思いついたというわけではなくて 2019 年の目標の一つにしている。)

ただ一方で、そもそもアーキテクチャとかデータの持ち方(データベース、テーブル設計)から考え直す必要もありそうに思っていて、そちらの方が大変かつ難しいものの根本的には正しい道に進めるようにも思うので、どこまで個別の SQL に対して深入りしていくものかと悩んでいるところも…。 🤔

2019/03/03 23:28
tags: minipost
This site is maintained by furuhama yusuke.
from 2018.02 -