【React】実務におけるuseMemo/useCallback/React.memoの適用方針
useMemo・useCallback・React.memoによるメモ化を活用することでReactアプリケーシ…
useMemo・useCallback・React.memoによるメモ化を活用することでReactアプリケーシ…
redis-objectsについて redis-objectsとはRedisのデータ型をRubyのオブジェクト…
前回、Rails.cacheの使い方、低レベルキャッシュの利用方法でRails.cacheの紹介をしました。 …
特定の値やクエリ結果をキャッシュすることを低レベルキャッシュと呼びます。 今回は低レベルキャッシュを実装する際…
N+1カウントクエリとは、取得したN件のデータそれぞれに対してcountクエリが発行される現象のことを指します…
N+1カウントクエリとは、取得したN件のデータそれぞれに対してcountクエリが発行される現象のことを指します…
前回、counter_cacheでN+1カウントクエリを解消する手順でRailsの標準機能であるcounter…
N+1カウントクエリが発生している状態とは N+1カウントクエリとは、取得したN件のデータそれぞれに対してco…
CSVを分割して読み込むことでメモリの消費を抑える 【Rails】in_batches、find_in_bat…
eachはデータをすべてメモリにのせてからループ処理を実行するため、可能性があります。 たとえば以下の例では、…
サーバが重いときのボトルネックの見つけ方と対応方法について紹介します。 ボトルネックの種類 ボトルネックには以…
行ロックを利用してレコードを参照する方法をロッキングリードと呼びます。ロッキングリードを利用することで参照レコ…
MySQLのデータベースエンジンにはMyISAMとInnoDBがあります。 InnoDBにはレコード単位のロッ…
InnoDBはMySQLのデータベースエンジンの1つです。InnoDBの行ロックには共有ロック(Sロック)と排…
pluckやmapを利用することで、Active Recordモデルから特定の要素を取り出せます。 今回はpl…
Rubyの実装で利用されるメモリを計測する方法には主に以下の2つがあります。 今回は上記2つの具体的な利用方法…
検索条件によってはSQLでインデックスが利用されないケースがあります。 達人に学ぶDB設計 徹底指南書などでイ…
新規テーブルの作成やクエリチューニング時にインデックスを作成する機会があります。 インデックスを作成することで…
SQLのJOINで利用される代表的な結合方法にはNested loop join(NLJ、ネステッドループ結合…
複合インデックス(結合インデックス)とは複数のカラムを組み合わせたインデックスのことをいいます。 検索やソート…
前回、MySQLのEXPLAINの読み方とチューニング時のチェックポイントでEXPLAINの読み方について紹介…
EXPLAINを実行することでSQLの実行計画が取得できます。クエリのチューニングにおいてEXPLAINの理解…
画像をはじめとした静的コンテンツをキャッシュし、Webサーバから配信することでアプリケーションのパフォーマンス…
前回、Ruby標準のBenchmarkモジュールを利用したベンチマークの実行・確認方法でRuby標準のBenc…
Rubyの標準で用意されているBenchmarkモジュールを利用するとベンチマークテストが実行できます。 今回…
Stackprofは『どのメソッドにどれくらいの時間がかかっているか』を解析できるgemです。 今回はStac…
Railsアプリの計測用gemで有名なrack-mini-profilerのインストール方法および利用方法につ…
rblineprofは計測対象のファイルに計測用のコードを埋め込むことで行単位のプロファイリングが行えるgem…
前回、【Ruby】rblineprofで行単位の計測を行う方法でrblineprofを利用したRubyのプロフ…
rblineprofは行単位のプロファイリングを行うgemです。 rblineprofを利用することで『どの行…
N+1問題とは、取得したN件のデータそれぞれに対してSQLが発行される現象のことをいいます。 N+1問題による…
こんにちは。仁科(@nishina555)です。 Webのパフォーマンスをチューニングするにあたり、サーバーの…
こんにちは。仁科(@nishina555)です。 前回、遅いクエリを突き止める!MySQLクエリ解析にスローク…
こんにちは。仁科(@nishina555)です。 Webのパフォーマンス改善において、は非常に重要です。 特に…
こんにちは。仁科(@nishina555)です。 前回こちらの記事でISUCON環境をConoHaに構築しまし…