HIRO Tracks

ソフトウェアエンジニアが日々学んだ知識を発信します。

データベース

【SQL】H2DBの「単一値の原則」違反エラーを吐くタイミングが微妙でハマった話【GROUP BY】

これはなに? LocalでH2DBに対しては動いていたSQL文が、SQLServerで動かすとエラーを吐くようになって、事象の理解にやや時間を要した時の話です。 結論、製品版DB(SQLServer)と、インメモリDB(H2DB)の単一値の原則違反エラーに対する挙動の違いが原因でし…

【PostgreSQL】サーバ停止不要なバックアップ方式と利用コマンドまとめ【pg_dump,pg_dumpall】

これはなに? OSS-DB Silverを受けて得た知見のうち、オンライン論理バックアップの用途と使うについてまとめます。 「オンライン論理」バックアップって何? PostgreSQLのバックアップは大きく オフラインでの物理バックアップ オンラインでの物理バックア…

OSS-DB Silver ver3.0に受かったので【勉強方法】と【得られた知見】について語る

これは何? OSS-DB Silver ver3.0に受かったのでその振り返り記事です! (パッと読めます) 受験経緯 現場でPostgeSQLを利用する機運が高まってきたため。 PostgreSQLにおける性能改善や運用周りで困ることがないように。 また困ったとしてもすぐ「そういえ…

PostgreSQLにおけるWAL(Write Ahead Logging)って何?

始めに この記事では、 データベースの内部構造や仕組みに詳しくなりたいけど、そもそも「WALってなんやねん」という人 「SQL書けるよ」だけじゃなくて、運用目線でDBに詳しくなりたい人 向けに、WALとはなんぞや?という内容について整理してみます。 参考…

【JPA/Querydsl】OneToManyなテーブルから必要なカラムだけDTOにマッピングする(transform,groupBy)

これは何? hiro-tracks.net こちらの記事の続きです。 本記事では、上記記事の「必要なカラムだけSELECTする」に加えて、OneToManyな2テーブルに対して飛ばしたJONクエリの結果を、自作DTOにマッピングする方法をお伝えします。 クエリチューニングの一環と…

【JPA/Querydsl】必要なカラムだけDTOにマッピングする(Projections.constructor)

これは何? queryDSLで「SELECT * FROM...」するのではなく、必要なカラムだけ取得する方法をお伝えします。 クエリチューニングの一環としてでSELECTする対象を絞り込む時(Key LookUpを減らして実行計画改善する時とか)に便利なTipになってます! これは…