やかんです。
今日は気温が低めのようですが、湿気がえぐいのであっつく感じますね。
ちなむと、サウナは行ったことないです。
今日やったことについて
今日は午前中から午後にかけてエンジニア業務を頑張り、夕方からちょろちょろ勉強しーの体育館でバドとバスケっていう、なんかどっかの大学生みたいな1日を過ごしました。
エンジニア業務
- open ai周りは、もう型を共通にするの鬼無図じゃないか
DBについて乱勉強
乱勉強は僕の造語です。今作りました。乱読の勉強バージョン。
Connection Poolについて
そもそもデータベースというものは、外部のクライアントと接続するために「何らかの準備」が必要である。この時、一つのクライアントと接続するために一つの「何らかの準備」が必要であるという点に留意。この、「何らかの準備」を事前に済ませておくというものがConnection Poolなんだという理解。また、1クライアントに対して1Connection Poolということ、そしてConnection Poolの数には上限があることから、一度にデータベースに接続できるクライアントの数は有限ということがわかる。
PostgreSQLとConnection Poolについて
PostgreSQLは、デフォルトでConnection Poolをサポートしてない。これを使う場合は、pgboucerなどを使う必要がある。が、これはPostgreSQLが、一度に確立可能な接続を1つに限っているという意味ではない。Connection Poolがないということは、「事前に確立された接続」を利用できないということであって、都度、接続を確立すれば良いだけである。この時、確立可能な接続数は上限を設定できることに留意。
Prismaについて
- directUrlってなに?datasourceのやつ。
- これ参照。
Prepared Statementについて
こんな仕組みあったんだ!というワクワク感がある話だった。類似するクエリ(構造的に同じクエリ)は、同一の「関数」に落とし込むことで、効率化を図る。この時の「関数」に相当するものがprepared statement。
クエリを抽象化してprepared statementに落とし込む、あるクエリに適切なprepared statementを選択する(存在しなければ作成する)あたりは基本的にORMやprismaのようなライブラリが担当してくれているから、直接触れる機会はまあないだろうな。
ちなむと、prepared statementはクライアントサイドではなくサーバーサイド(dbサーバー)に保存される。クライアントが保持するのは、prepared statementの名前やドキュメントなどの情報のみ。
OS自作入門
第0章を読み終えました。
- CPUの計算能力って何。
- クロック速度:CPUで1つの処理が実行される速さが速い方が、計算能力が優れていると評価できる。
- キャッシュサイズ:キャッシュを有効に管理できた方が、計算を効率化できる。
- 一度に処理できるタスクの数:これが多い方が計算が速い。
- などなど。
作るの楽しみ!
通信ってそもそもなんだ?っていう話。
これは領域的には電磁気学に入るみたいです。これをちょろちょろ見たことで、なんでバイナリデータがAPIでやたら出てくるのかちょろちょろ理解できた気がします。
というような1日でした。とりあえず蒸し暑いの何とかしてほしいかもしれないです。最後までお読みいただき、ありがとうございます。