Лучший язык программирования для быстрого чтения БД и быстрого управления локальной структурой данных - PullRequest
0 голосов
/ 01 марта 2011

У меня есть база данных mysql с множеством разных таблиц, некоторые из которых хранят более 100 тысяч строк. Я хотел язык, который позволил бы мне быстро читать из базы данных, позволяя собирать данные из разных таблиц и сохранять их в локальных объектах / структурах данных. Затем я бы выполнял большую часть сложной обработки локально, для которой я также хотел бы быть оптимизирован.

Это в основном для проекта анализа данных, которые очищаются каждый день. Некоторые друзья рекомендовали Ruby или Python, но, не зная, я хотел получить второе мнение, прежде чем совершить прыжок.

Ответы [ 3 ]

1 голос
/ 01 марта 2011

Частично проблема здесь заключается в задержке между БД и кодом уровня вашего приложения. Пропингуйте сервер БД, с которого вы собираетесь запросить базу данных. Удвойте это, и это ваше время выполнения каждой операции. Если вы можете жить с этим временем, то вы в порядке. Но вам может быть лучше написать свои манипуляции в sprocs или что-то, что находится рядом с БД, и использовать код своего приложения, чтобы сделать его презентабельным для пользователя.

0 голосов
/ 01 марта 2011

100 000 записей на самом деле не так много.Если у вас достаточно оперативной памяти и несколько локальных «индексов» в данных ссылаются на одни и те же объекты, а не на копии, вы сможете кешировать их локально и получать к ним доступ очень быстро, не беспокоясь.В то время как Ruby и Python являются интерпретируемыми языками и работают для операции медленнее, чем скомпилированные языки, реальность заключается в том, что при выполнении приложения в коде тратится лишь небольшая часть времени процессора, а большая часть расходуется на встроенные библиотеки.вызов в, которые часто являются нативными реализациями, и, следовательно, так же быстро, как скомпилированный код.

Либо Ruby, либо Python отлично подойдут для этого, и даже если после тестирования вы обнаружите, что вашей производительности на самом деле недостаточно, вы переводите один из них на более быстрый язык, такой как Java, .NET или даже C ++.будет значительно быстрее, чем на самом деле переписывание с нуля, поскольку вы действительно уже проделали тяжелую работу.

Еще один вариант - кэшировать все данные в базе данных в памяти.В зависимости от того, насколько динамичен анализ, который вам нужно сделать, это может хорошо работать в вашей ситуации.SQLite очень хорошо подходит для этого.

Также обратите внимание, что, поскольку вы спрашиваете о кэшировании данных локально, а затем воздействуете только на локальный кеш, производительность, обращающаяся к базе данных, не применяется.

0 голосов
/ 01 марта 2011

ДБ будет в большинстве случаев узким местом с точки зрения получения данных.

На самом деле все зависит от того, какая ваша «сложная обработка» будет иметь наибольшее значение для какого языка и какой производительности вам нужно.

С точки зрения простоты установки и начала работы, python и ruby ​​быстро начинают работу и начинают работать. Немного медленнее по сравнению с другими для вычислительной техники. Но даже тогда, оба могут вычислить чертовски много вещей, прежде чем вы заметите большую разницу от родного языка компилятора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...