Производительность прямого доступа внутри большого файла по сравнению с наличием отдельных файлов по сравнению с другими решениями? - PullRequest
0 голосов
/ 29 ноября 2018

Мне интересно, как влияют на производительность различные способы хранения и последующего доступа к данным (документам) только для чтения, каждый элемент данных / документ, идентифицируемый уникальным идентификатором, будет (обратите внимание, что словарь, который содержит все ключи плюс одинили два числа или некоторый другой небольшой объем информации поместился бы в памяти или мог бы быть эффективно обработан иначе):

  • Один огромный файл переменных с разделителями табуляцией (TSV) и файл индекса, который я генерирую один раз, чтобы найтиначальные смещения и длины каждой строки на ключ.Затем, чтобы получить доступ к конкретному экземпляру / документу данных, используйте чтение с произвольным доступом для чтения из начального смещения.
  • создайте один файл на экземпляр, возможно, в иерархии каталогов, чтобы избежать попадания в один каталог слишком большого количества файлов.Затем, чтобы получить доступ к конкретному экземпляру / документу данных, используйте преобразование ключа экземпляра в путь к файлу и считывание оттуда.
  • создать некую базу данных SQL с таблицей, индексированной по ключу
  • создать некую базу данных NoSQL для доступа к данным на основе ключа

Яв основном заинтересован в том, чтобы делать это в Linux, используя стандартные настольные жесткие диски или твердотельные накопители, но он также должен работать аналогичным образом в Windows или Mac (но я предполагаю, что все эти подходы работают практически одинаково на всех ОС?)

...