Схема базы данных для онлайн Rss Reader - PullRequest
0 голосов
/ 29 октября 2009

Мне нужно создать онлайн Rss Reader (как, например, Google Reader), как часть более крупного проекта. Я уже сделал тестовую версию с использованием MS SQL. Однако проблема в том, что я не знаю, как эффективно хранить элементы фидов в базе данных: у каждого элемента фида есть свой идентификатор (guid или просто постоянная ссылка), и хотя я храню их все в одной таблице, производительность невероятно плоха после 300 000 - 500 000 наименований.

Итак, у меня есть вопросы:

1) Какой двигатель БД является лучшим для моей проблемы (я принимаю не только RDMS, может быть BerkeleyDB или что-то еще (пожалуйста, напишите, ПОЧЕМУ я должен использовать определенный двигатель)?

2) Как лучше организовать данные (схемы) в БД?

3) Какой язык / рамки лучше всего подходят для этой проблемы?

И я буду рад, если вы дадите мне общие советы, касающиеся производительности.

UPDATE: Моя идея состоит в том, чтобы разделить пространство каналов на 255 подпространств, используя CRC8 хэш URL канала. После расчета этого CRC8 используется в качестве имени таблицы, в которой будут храниться элементы этого канала.

@ FractalizeR: главный вопрос

с заданной строкой find feeditem, которая уже сохранена в базе данных с этим идентификатором (SELECT * FROM FeedItems.pid = pid)

Основная проблема в том, что pid - произвольный длинный текст.

1 Ответ

0 голосов
/ 29 октября 2009

Первый вопрос, который вы должны задать себе перед проектированием базы данных: «Какие вопросы к базе данных, скорее всего, будут заданы». Если вы предоставите нам ответ на этот вопрос, мы можем перейти к планированию базы данных.

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

...