Я использую leveldb для хранения записей (ключ-значение), где ключ - это 64-битный хэш, а значение - двойной. Чтобы сделать аналогию: представьте, что 64-битный хеш - это уникальный идентификатор клиента и двойная величина как остаток на счете (т. Е. Сколько денег у них на счете). Я хочу отсортировать базу данных по балансу счета и сначала перечислить клиентов с наибольшим балансом счета. Однако база данных не может поместиться в памяти, поэтому мне нужно использовать какой-то другой метод для ее сортировки, чтобы отсортировать по балансу счета.
Я рассматриваю возможность использования STXXL , но для этого требуется, чтобы я скопировал базу данных в один плоский файл, а затем я мог бы использовать STXXL для выполнения внешней сортировки (что могло бы создать кучу файлы меньшего размера, сортируйте их и затем объединяйте их в другой простой файл). Есть ли лучший подход к сортировке данных или я должен пойти с сортировкой STXXL?