kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

SQL

システム障害時になにをする??

サービスを運用しているとたぶんどこかで障害の対応をしていると思います。 前職が受託案件が多かったのと、サービスの規模が小さかったため対応までやったことはなかったですが、 最近多くなってきたので、やっている内容の備忘録です。 復旧のために サー…

文字コード「utf8mb4」ってのがあるのを最近知った

MySQLで「utf8mb4」という文字コードがあることを最近知りました。 知った経緯はあるアプリの環境を構築していた時に、設定ができなくて原因をしらべていたら対応できない文字コードとして設定されていました。 Character set 'utf8mb4' is not a compiled c…

sqlでindexが使用されないケースがある

SQL

SQLでクエリ改善の件で、explainを使用してコストを見る場合に、「seq」を探します。 「seq」を消すためにindexを追加しますが、それでも使用されないケースはあったりします。 インデックスを追加しても検索時間が短縮しないitpro.nikkeibp.co.jp 件数が少…

SQLのパフォーマンス改善 その2

SQL

前回の「SQLのパフォーマンス改善 その1」続きです。 スロークエリで表示されたあとに、indexが効いていない部分の改善をしました。 インデックスが効いていない箇所を探す 件数が過剰ではないか サブクエリ 関数での計算 ソート DISTINCT 件数が過剰ではな…

SQLのパフォーマンス改善 その1

SQL

[Postgres]SQLのパフォーマンス改善を最近よくやっていました。 やっと成果が出てきたので、少しやり方を書いてみます。 スロークエリを見る まずどのSQLが重いのか、パフォーマンスが悪いのかを見つけることが重要だと思います。 最初はふつうに作って、速…

SQLのORDER BYもパフォーマンスに影響することを知った

SQL

SQLで順序を指定する際にORDER BYはよく利用します。 このORDER BYでパフォーマンスが変わることを知りました。 ORDER BY句で指定している内容にindexがない場合などは、メモリ展開されてソートされるためデータのリソースの余裕がないとすごく遅くなります…

DISTINCTはコストが高い

SQL

SQLのDISTINCTはコストが高いらしい。 基礎から理解するデータベースのしくみ(5)itpro.nikkeibp.co.jp 仕事場でいろいろと教えてもらいながらやっている中で、DISTINCTは最終手段だよ。と教えてもらった。 DISTINCTはJOINの書き方で対処ができるはず。らし…

Postgresの統計情報を活用しています。

SQL

稼動統計情報を活用しよう(1) — Let's Postgreslets.postgresql.jp 機能追加でプログラムを作成しているのと同じくらいSQLとの戦いを日々しています。 SQLの書き方でどうすればコストを減らせるかとEXPLAINと戦うようになっていますが、数あるコードから探す…

サブクエリで一気に遅くしてしまった件

SQL

SQLを書いていて、大きなデータをいままで扱ってこなかったためクエリの速度を考えて書いたことはなかった。 そのため今回ちょっとやらかしています。 SQLが一気に遅くなってしまい、困ってたりします。 サブクエリで遅くなったっぽい 大量に検索データがあ…

SQLのサブクエリではまっている

SQL

SQLが弱点であることに気がついた最近だが、そんなすぐに成長するわけではない。 ということでかなりドツボにハマッている状態になっています。 使用しているのはPostgresを使用しています。 サブクエリを使用してパフォーマンス低下 サブクエリ(副問い合わ…