2010-06-17 3 views
5

В своем опыте, какой лучший язык веб-программирования используется для обработки сортировки и сравнения очень больших списков (т. Е. Десятков тысяч адресов электронной почты)?Язык веб-программирования для очень больших списков?

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

Спасибо!

+1

Каково приложение, которое вы ищете для изготовления, которое может повлиять на обсуждение. – Lazarus

+1

, как часто вам нужно сортировать этот список? Для чего его используют? Что * еще * должен ли язык делать? – jalf

+0

Целью веб-приложения является управление списками адресов электронной почты. Это просто нужно сортировать по алфавиту. Это не будет проблемой, я могу просто сортировать в запросе MySQL. Теперь, когда я думаю об этом, я думаю, все можно сделать на уровне базы данных. Например, при сравнении двух списков я могу просто создать представление в базе данных ... – littleK

ответ

15

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

+3

Кроме того, если вы собираетесь запрограммировать решение, большинство проблем с производительностью сводятся к алгоритмам, которые вы используете для поиска/сортировки, что будет иметь гораздо большее влияние на производительность, чем на тот язык, который вы используете. –

+0

Делает смысл. Я буду использовать базу данных для выполнения большинства операций. Благодаря! – littleK

1

Язык обычно не имеет значения TOO много. Выберите тот, с которым вам больше всего нравится.

Конечный продукт имеет форму строителя, а не инструменты.

16

Возможно ли выполнить сортировку внутри базы данных? Они предназначены для динамической сортировки и сравнения. Я бы предложил вам перейти к модели, которая позволяет БД обрабатывать такие виды деятельности.

Если вы действительно не можете использовать БД по какой-то причине, вам следует сосредоточиться на алгоритмах над языками. Выберите язык, основанный на других критериях (личное знакомство, поддерживает ли он ваши другие задачи, имеет ли он активное сообщество поддержки и т. Д. И т. Д.) И выясняет лучший алгоритм, учитывая особенности языка. Например, согласно некоторым обсуждениям в https://stackoverflow.com/questions/309300/defend-php-convince-me-it-isnt-horrible, PHP имеет относительно слабую производительность рекурсии.

Но серьезно, используйте базу данных для этого.

+0

Будет использовать базу данных, спасибо! – littleK

2

Это не зависит от языка программирования, это зависит от логики, скажем, это индексы или схемы таблиц и механизм кэширования.

0

Ваш самый быстрый был бы скомпилированным cgi.

+0

Продвижение этого. Написание эффективных алгоритмов в C даст лучший результат. Тем не менее, это не очень язык программирования в Интернете. Но для поиска и сортировки это, безусловно, самое лучшее (при условии правильных алгоритмов). Однако использование базы данных с любым другим реальным языком программирования в Интернете было бы намного проще и, скорее всего, решило бы проблему достаточно. – Kibbee

1

Вы также можете использовать trie, которая представляет собой структуру данных дерева префиксов - для сортировки в памяти.

Адрес электронной почты имеет ограниченный набор символов (a-z, 0-9, _, . и т.д.), так что trieNode бы только эти символы. Это topcoder tutorial на trie является хорошей отправной точкой, если вы еще не знаете о trie.

Вы должны пройти все строки, чтобы построить три.

Поиск/сравнение занимает время O (l), где l - длина строки, которую вы сравниваете.

Сортировка требует, чтобы вы пересекали все триеды дерева trie, используя DFS (поиск глубины первого) - время O (| V | + | E |).

+0

Интересно. Я посмотрю, спасибо! – littleK

+0

Повторное задание адресов электронной почты и наборов символов, см. Http://www.regular-expressions.info/email.html. – RCIX

Смежные вопросы