こまぶろ

技術のこととか仕事のこととか。

pom.xmlの特定の要素をxmllintで書き換える

CIからpom.xmlを自動で更新するような仕組みを入れようと思って、pom.xmlを書き換える方法を調べたのでメモ。 ポイントとしては、 名前空間付きのもののときは *[local-name()='hoge'] を使う 同名のタグが複数ある場合に特定のノードのものを選択するには a…

MySQLの実行計画で Using intersect (...)な index_merge には要注意

実行計画での typeカラムに index_mergeが出たら MySQLで、WHERE句で複数の条件をANDやORで繋いでいるクエリの実行計画をとると、 type カラムに index_merge というのが出ることがある。これはインデックスマージ最適化というものが使われるということを示…

S3へのソースコードの配置をトリガーにしてCodePipelineを動かす設定をTerraformで書く

Amazon S3 へのソースコードの配置をトリガーにして AWS CodePipeline を動かす方法はいくつかあります。 S3 を CodePipeline からポーリングして変更を検知する S3 への操作を CloudTrail で検知してイベントを発行して EventBridge 経由で CodePipeline を…

AWS Certified Solutions Architect - Associate (SAA-C02) を自宅受験(ピアソンVue)して合格した

掲題の通り、AWS Certified Solutions Architect - Associate (SAA-C02) に合格しました。ピアソンVueでの自宅受験が可能になっていたので、自宅で受験しました。 今記事では、これから受験しようかなと思っている人向けに、自分がどんな勉強をしてどうだっ…

MySQL 8.0.20 以前でサブクエリの結果をINで受けるDELETE文を書いたらテーブルスキャンになった話:MySQL 8.0.21 で有効になった最適化の検証

この記事はなに? MySQL 8.0.20 以前でサブクエリの結果をINで受けるDELETE文(後述)を書いたところ、意図に反して削除対象のテーブルが全行スキャンされてしまいました。この挙動が、MySQL 8.0.21 で有効になった最適化によって解消するという情報を得た*1…