ruby on rails

ruby on rails

複数カラムを操作するときのmigrationはbulk: trueオプションをつけてクエリを1つにする

複数カラムを操作するmigrationはbulk: trueオプションをつける  例えばカラム追加をする時は、こんな感じに書く。 class AddFlagColumnToUsers < ActiveRecord::Migration[5.2] def change ...
mysql

「Mysql2::Error::ConnectionError: Lost connection to MySQL server」が発生してからの復帰方法を調べてみた

現象  ローカルに起動中のmysqlにrailsから接続し、db:migrateなどの重めのmysql操作を実行すると、高い確率でmysqlに接続できなくなる。 ~/d ❯❯❯ bundle exec rake db:migrate rake aborted! Mysql2::Erro...
ruby on rails

コードを読んでクエリ回数をカウントできるようになる

DBを操作するメソッドはクエリを実行する  DBを操作するメソッドを呼び出すとクエリが実行される。  よく使われるのは以下のメソッドだろう。 参照系・find・find_by・where 作成・更新系・create・update・save 削除・destroy ...
ruby on rails

「eager_loadからのあらかじめHash」で発行クエリ数を最小限に抑えて高速で検索できる

 ループ内でアソシエーション以外の方法で参照クエリを実行しなければいけない場合に、クエリ回数を最小限に抑える方法について記す。 状況  以下のような関係性の時、ユーザーが所有する全てのアイテムの名前を取得したい。 # アソシエーション User has_many: user_i...
ruby on rails

コントローラの責務は「交通整理」

 MVCのC(コントローラ)はモデルとビューをコントロール(制御)するのが主な責務である。具体的にコントローラで行うべき処理は以下の通り。 1、リクエストパラメータを適切なモデルクラスに渡し、そのアクションの目的を実現するための処理をモデルクラスに移譲する。(コントローラはどのようなリクエス...
ruby on rails

処理に必要なレコードだけを取得する

 クエリの発行数が減らせるからといって、処理に必要のないレコードを大量に取得してしまうと処理速度が低下する場合がある。  何でもかんでもEagerLoadで大雑把にレコードを取得する場合より、複数のクエリを実行することになっても処理に必要なレコードだけに絞り込んだ方が高速になる場合もある。 ...
タイトルとURLをコピーしました