On Wednesday, March 14, 2018 at 2:42:09 AM UTC-7, matas.simonai...@ksdigital.lt wrote: > > Hi, > > I have some troubles with Sequel`s paged_each. I'm using mysql2 > I have simple model: > > class Attribute < Sequel::Model > one_to_many :attribute_values > end > > > I'm connecting to slave database: > ... > DB = Sequel.connect(config, servers: servers) > ... > > rails console: > > irb(main):009:0> Attribute.methods > [... :paged_each, ...] > > irb(main):008:0> Attribute.paged_each > (0.001443s) SELECT * FROM `attributes` ORDER BY `id` >
In the mysql2 adapter, if the mysql2 driver supports streaming, paged_each uses streaming as an optimization by default. If you really don't want to use streaming for some reason, you can pass the :stream=>false option, but in general there isn't a good reason to do that. The purpose of paged_each is to iterate over large result sets without keeping all rows in memory. The default implementation of paged_each uses LIMIT/OFFSET since that should work on all databases. paged_each can be made to use ORDER BY and WHERE, which should also work on all databases. However, if streaming results is supported, that's usually the fastest approach and the default where it is supported. Thanks, Jeremy -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to sequel-talk+unsubscr...@googlegroups.com. To post to this group, send email to sequel-talk@googlegroups.com. Visit this group at https://groups.google.com/group/sequel-talk. For more options, visit https://groups.google.com/d/optout.