はじめに DBが遅い原因の多くはインデックスの作り忘れです。 サーバーの性能アップやパラメータ変更の効果も大きいですが、まず最初に検討するべきはインデックスでしょう。 EXPLAINの結果をにらみながら、効果のありそうな場所を探します。 ただ、厄介なのはEXPLAINの結果が読みづらいことです。 EXPLAINの読み方を説明している本やサイトはいくつもありますが、EXPLAINを使う機会が少ないため、読める人が限られた、職人芸に近い技術になっています。 なので、EXPLAINを読まなくてもインデックスを作れるツールをGoとSvelteで作りました。 GravityRを使うと、下のようにEXPLAINをタイムライン形式にした図やインデックスの効果を表示したHTMLが作成されます。 紹介 GravityRはHasura、PostgreSQL、MySQLに対応しています。 実行ファイルをgith
![Hasura, PostgreSQL, MySQL対応の速度改善ツールを作りました - GravityR](https://cdn-ak-scissors.b.st-hatena.com/image/square/2c322a0ce51d08660ed24fd74df1dc3b58e6a40b/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--iHS6wV7c--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3AHasura%25252C%252520PostgreSQL%25252C%252520MySQL%2525E5%2525AF%2525BE%2525E5%2525BF%25259C%2525E3%252581%2525AE%2525E9%252580%25259F%2525E5%2525BA%2525A6%2525E6%252594%2525B9%2525E5%252596%252584%2525E3%252583%252584%2525E3%252583%2525BC%2525E3%252583%2525AB%2525E3%252582%252592%2525E4%2525BD%25259C%2525E3%252582%25258A%2525E3%252581%2525BE%2525E3%252581%252597%2525E3%252581%25259F%252520-%252520GravityR%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Amrasu%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2VkZmIzMzNjMDQuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png)