2010-08-16 3 views
4

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

  • Очень быстро вставить строки. MySQL не является стартером.
  • Быстро фильтровать и сортировать результаты
  • Нет несколькими столами не присоединяется необходимые
  • Нет сделок

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

+1

MySQL имеет разные типы двигателей - память будет быстрой, но не будет сохранена, если система отключит IIRC. –

+1

Вы пробовали инструкцию MySQL LOAD DATA INFILE или многострочную версию INSERT? Они намного быстрее, чем использование одного INSERT для каждой строки. –

+0

SQLite3 вы должны взглянуть на./Yoda – hlynur

ответ

1

Возможно, вам стоит взглянуть на решения NoSQL. Может быть Кассандрой, http://cassandra.apache.org/ который используется Facebook и Digg среди других

2

Вы посмотрели на SQLite? Он используется приложениями (т. Е. Thunderbird, FF), когда им нужна мощность запроса, но не полноценная реляционная база данных, среди других применений.

+0

SQLite предоставляет только одну команду вставки и, следовательно, несколько хуже, чем MySQL, которая предоставляет команду вставки нескольких строк. – bradgonesurfing

+0

Вау, приятно знать. – user151841

0

Если у вас есть много оперативной памяти, возможно, захотите попробовать SQLite в памяти базы данных: http://www.sqlite.org/inmemorydb.html

С меньшим количеством оперативной памяти, попробуйте SQLite временные базы данных (далее вниз по странице - см. гиперссылку выше). Они также используют кеш в памяти, но части могут быть сброшены на диск, если база данных станет большой.

0

Вы также должны взглянуть на базу данных Advantage. Локальный сервер является бесплатным и поддерживает как SQL, так и не SQL-решения. Решение, отличное от SQL, безусловно, будет быстрее, чем SQL-подход. Таблица может быть обозначена как кэшированная, чтобы она оставалась в памяти как можно дольше для быстрой вставки. Advantage Database Server

1

Вы не указали платформу, но в Windows вы можете использовать встроенный механизм базы данных Esent. Это обеспечит сохранение данных с помощью сортировки и высокой производительности.

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