sirogani / dive9

0 stars 0 forks source link

レコードを全件取得してハングしないように取得件数制御を記述する #20

Open norotime opened 6 years ago

norotime commented 6 years ago

https://github.com/gosaru6/dive9/blob/774aef85dd83120bf1e5e12e5ac5370cc4868f63/app/models/blog.rb#L1

@gosaru6

Model.findで実行されるSQLにLIMITを適用したい場合、リレーションでlimitメソッドとoffsetメソッドを使用することでLIMITを指定できます。

https://railsguides.jp/active_record_querying.html#limit%E3%81%A8offset

norotime commented 6 years ago

@gosaru6 本来は、SQLで制御することなのですが、なんちゃってRailsエンジニアはDBMSのことを良く知らないので全件取得のまま運用してしまい、ディスられてしまうのです。 数千〜数万〜数十万件のレコード、実務でないと見ませんからね・・・。 https://oss-db.jp/measures/dojo_19.shtml

norotime commented 6 years ago

SQLを直接記述することはRailsのレールに反するため、あまりやらないようにしましょう。 Active Record メソッドを使えば、裏側で発行できます。