Боюсь, немного сложно выбрать дизайн без деталей. Мой первый выбор будет следовать за первым вариантом; это звучит как более простой подход. Второй звучит так, как будто он будет работать лучше, но в моей голове есть голос, шепчущий о преждевременной оптимизации и зле.
Это действительно зависит от того, насколько эта услуга будет использоваться. Это будет под большой нагрузкой? Является ли сервер запущенным на мощной машине, на которой запущено всего несколько вещей, или виртуальной машиной вместе с несколькими другими виртуальными машинами, каждая из которых работает с несколькими службами?
Если вы хотите быть в безопасности, я бы предложил прототип. Просто создайте небольшую программу, которая использует базу данных столько, сколько приложение будет использовать в первом описанном вами сценарии, и дайте ей поработать. Ничего особенного, просто пусть он выкачивает случайные данные в базу данных и из нее. Не забудьте сохранить большой объем данных, чтобы увидеть, как они справляются. Если все в порядке, выберите первый вариант. Если нет, вы можете перейти к чему-то более сложному.
На заметке поближе познакомьтесь с выбранной вами базой данных. Вы не первый, кто пытается возложить на него тяжелый груз; большинство баз данных предлагают механизмы, позволяющие справиться с подобными вещами.