2011-09-23 2 views
1

Я смотрю на структуру таблицы, которая может выглядеть примерно так:Какая база данных лучше всего подходит, особенно с точки зрения использования диска, для миллионов очень маленьких строк с высоким объемом вставки, запроса и удаления?

| char(32) | char(32) | (boolean) | 

будет проиндексирована сочетание первых двух столбцов. Эта база данных может легко иметь миллионы, если не десятки миллионов строк вставляются, запрашиваются, обновляются и удаляются каждый день. Какой лучший инструмент для этого? Это MySQL или есть что-то более эффективное, которое будет использовать меньше места на диске?

ответ

1

Только один стол? Является ли таблица общей или обновляется только одним процессом?

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

+0

Ну, он говорит, что «вставлены строки, ** запрошены, ** обновлены и удалены» * –

+0

Одна таблица. Обновлено несколькими процессами. Связанные списки не являются постоянными или запрашиваемыми. –

+0

С одним индексом список можно сохранить в порядке (это будет по существу * быть * индексом). Предполагая, что у вас есть дискретный набор значений для поиска в этом индексе, нет проблем с его поиском (это не будет SQL-запрос, а запрос невозможен). Вы можете легко сохранить список на диске. Но несколько авторов делают связанный с памятью список менее реалистичным решением. –

1

Любая реляционная база данных должна иметь возможность обрабатывать нагрузку, которую вы описываете, при условии правильной логической и физической схемы.

+0

В основном я стараюсь свести использование диска к минимуму. Это происходит в общей среде. –

0

Должно ли это быть на диске? Почему бы не использовать memcached или redis? Я предполагаю, что вы можете превратить свою таблицу в пары «ключ/значение»?

+0

Ну, у него должно быть два ключа, хотя я мог бы их комбинировать. –