Собираетесь ли вы выполнять поиск по диапазону («возраст от 10 до 12, от 13 до 15 и т. Д.», «От 40 до 60, от 61 до 70 и т. Д.») Или поиск по одному значению («имя» Квентин Смит или оба? Для поиска по одному значению, хеш подходит и быстро; В частности, для поиска по диапазону лучше всего использовать B-дерево и его варианты.
Вы ищете где-то в области 50 байтов на строку для исходных данных, поэтому вам придется иметь дело с 1/2 ГБ до 15 ГБ данных. Если он находится в верхней части этого диапазона, вам понадобится большая машина, чтобы просто хранить простые данные в памяти, не говоря уже о индексах. На нижнем уровне диапазона он находится в пределах правдоподобия. Ваши индексы могут занимать немного больше места, чем необработанные данные (возможно, на 50% больше), при условии, что вы индексируете каждый из столбцов. Индекс имени будет самым большим, конечно. Столбец ID может не нуждаться в индексе, если вы можете использовать его в качестве индекса в массиве записей, но, вероятно, в данных есть пробелы, поэтому лучше всего индексировать его в любом случае.