ISUCON用のDBの各テーブルへのCRUDを可視化することで、キャッシュすべき箇所の判断を助けるツールです。 どの関数を通り、どのテーブルへCRUDが発生するSQLが実行されているか解析し、以下のようなグラフ構造で表現します。
- Goのソースコードのプロジェクトルートに移動
- isucrudを実行
isucrud ./...
dbdoc.md
をMermaidに対応したマークダウンで開くとグラフを見れます
go install github.com/mazrean/isucrud@latest
Usage of isucrud:
-dst string
destination file (default "./dbdoc.md")
-ignore value
ignore function
-ignoreInitialize
ignore functions with 'initialize' in the name (default true)
-ignoreMain
ignore main function (default true)
-ignorePrefix value
ignore function
-version
show version
SQLの解析を簡易的に行っている関係で、解析に失敗したりCRUD対象テーブルを見逃すことがあります。 あくまでもキャッシュ対象テーブルの判断の参考程度に用いることをお勧めします。