Линк против Набор данных. Сохранить все в памяти или разбить запрос?

0

Я изучаю С# и пытаюсь выяснить больше о коллекциях. Несколько дней назад я нанял наставника, и он рассказывал мне о достоинствах Linq для повторения больших результатов данных, и поэтому я планировал использовать их, но теперь мне интересно, понял ли я неправильно.

Я запрашиваю Mysql и получаю до 200 000 результатов, которые нужно отформатировать и опубликовать в группах по 500 на HTTP-сервер как JSON. Должен ли я делать один запрос, а затем использовать Linq для разбивки результатов, или я должен нарушать SELECT до 500?

Я понимаю, что поток данных:

Mysql
   => MysqlDataAdapter
      => Fill DataSet
         => Use Linq to paginate

Или же

Mysql
   => MysqlDataAdapter (Limit 500)
      => Fill DataSet

Просто пытаюсь выяснить, какой путь имеет смысл с точки зрения производительности. Он будет запрашивать localhost.

  • 1
    Если вам нужно 500 результатов, я бы не стал запрашивать все 200 000+ (и, вероятно, увеличение) из базы данных. Ваш запрос к базе данных должен позволить вам выбрать номер страницы и размер страницы.
  • 0
    Перспектива производительности - это широкий термин (подумайте CPU / Memory / IO среди прочего), и без цели (мне нужно выполнить эту 1000 раз в секунду) ответы в лучшем случае могут быть мнением, которое все равно вряд ли подойдет вам. кейс.
Показать ещё 2 комментария
Теги:
linq

1 ответ

0

Здесь вы можете найти некоторые сравнения, которые могут помочь вам datareader-vs-dataset-vs-linq

Ещё вопросы

Сообщество Overcoder
Наверх
Меню