100 000 записей на самом деле не так много.Если у вас достаточно оперативной памяти и несколько локальных «индексов» в данных ссылаются на одни и те же объекты, а не на копии, вы сможете кешировать их локально и получать к ним доступ очень быстро, не беспокоясь.В то время как Ruby и Python являются интерпретируемыми языками и работают для операции медленнее, чем скомпилированные языки, реальность заключается в том, что при выполнении приложения в коде тратится лишь небольшая часть времени процессора, а большая часть расходуется на встроенные библиотеки.вызов в, которые часто являются нативными реализациями, и, следовательно, так же быстро, как скомпилированный код.
Либо Ruby, либо Python отлично подойдут для этого, и даже если после тестирования вы обнаружите, что вашей производительности на самом деле недостаточно, вы переводите один из них на более быстрый язык, такой как Java, .NET или даже C ++.будет значительно быстрее, чем на самом деле переписывание с нуля, поскольку вы действительно уже проделали тяжелую работу.
Еще один вариант - кэшировать все данные в базе данных в памяти.В зависимости от того, насколько динамичен анализ, который вам нужно сделать, это может хорошо работать в вашей ситуации.SQLite очень хорошо подходит для этого.
Также обратите внимание, что, поскольку вы спрашиваете о кэшировании данных локально, а затем воздействуете только на локальный кеш, производительность, обращающаяся к базе данных, не применяется.