Какая технология / решение для хранилища данных позволяет очень быстро вставлять, искать и «выбирать» - PullRequest
1 голос
/ 09 июля 2011

Вот моя проблема.

Я хочу проглотить много и много данных .... прямо сейчас миллионы, а затем миллиарды строк.

Я использую MySQL и играюпока что с PostgreSQL.

Вставить легко, но перед тем, как вставить, я хочу проверить, существуют ли эти конкретные записи или нет, если я не хочу вставлять.По мере роста БД эта операция (очевидно) занимает все больше и больше времени.

Если бы мои данные были в Hashmap, поиск был бы o (1), поэтому я решил создать индекс Hash, чтобы помочь с поиском,Но потом я понял, что если мне придется каждый раз вычислять хэш снова, я сильно замедляю процесс (и если я не вычисляю индекс, у меня нет o (1) поиска).

Так что я в затруднительном положении, есть ли простое решение?Или сложный?Я счастлив попробовать другие хранилища данных, однако мне нужно иметь возможность выполнять достаточно сложные запросы, например, что-то похожее на операторы SELECT с предложениями WHERE, поэтому я не уверен, применимы ли решения no-sql.

IЯ очень новичок, поэтому я не удивлюсь, если найдется тривиальное решение.

Ответы [ 2 ]

2 голосов
/ 10 июля 2011

Магазины Nosql хороши для обработки огромных вставок и обновлений

MongoDB имеет действительно хорошую функцию для обновления / вставки (называемую как upsert) в зависимости от того, существует ли документ.

Проверьте эту страницу с mongo doc

http://www.mongodb.org/display/DOCS/Updating#Updating-UpsertswithModifiers

Также вы можете проверить безопасный режим при подключении к Монго.Который вы можете установить как ложное, чтобы повысить эффективность вставок.

http://www.mongodb.org/display/DOCS/Connections

1 голос
/ 09 июля 2011

Вы можете использовать CouchDB . В нем нет SQL, поэтому вы не можете выполнять запросы как таковые, но вы можете создавать проектные документы, которые позволят вам выполнять функции отображения / сокращения ваших данных.

...