А вообще вам SQL нужен? Может лучше key-value базу типа bdb или qdbm? Есть так же интересная штука под названием fastdb. Если именно нужен SQL, то посмотрите в сторону SQLite.
Не совсем понятно насчет "только select" - загрузка происходит пакетно раз в месяц, с остановкой читателей? Или льется постоянно?
А старые данные - заменяются, или оно будет 20 гигов через год?
Какая структурная сложность - просто одна большая-большая таблица, или что-то развесистое?
Сколько читателей будет одновременно? Какой примерный объем выборки? Будет ли делаться аггрегация средствами БД, или просто высасываться, и обрабатываться приложением?
Вообще - на первый взгляд, скорее мускуль. Но если база сложная, будет много join-ов - то, возможно, Postgres будет быстрее.
> А вообще вам SQL нужен? Может лучше key-value базу типа bdb или qdbm? Есть так же интересная штука под названием fastdb. Если именно нужен SQL, то посмотрите в сторону SQLite.
Почти "+1". Только qdbm и Ко. имеют проблемы с 2 ГиГ. Как и "голый" SQLite на 32 bit.
Я бы (если не нужен SQL) обошелся просто самодельно индексированными файлами, а если все же нужен select, то наваял бы что-нибудь самодельное с использованием SQLite - например, по мере заполнения базы данные сбрасываются в константный хэш типа http://www.corpit.ru/mjt/tinycdb.html который при необходимости легко поднять в реляционный вид.
Бывают SQL-ные надстройки над BerkeleyDB. Например, на DBD::AnyData совершенно несложно такое сделать.
Опять же, mysql умеет его в качестве хранилища использовать - в read-only режиме, наверное, даже можно конкурентно select-ы делать и выбирать "сырые" по ключю. Но это чистая теория - хрен его знает, как мускуль столбцы в берклевые значения упаковывает, может, там ногу сломишь, пока распакуешь...
> ...как быстрый доступ через key-value, так и через более медленный sql?
На уровне "готового" API -- не знаю. Но, AFAIK, Мускуль внутри БерклиДБ использует?
Вообще, надо отдавать себе отчет в том, что хэши и реляционные структуры -- разного уровня абстракции. Примерно как кластеры на диске и файловая система...
Всегда ли есть возможность напрямую прочитать сектор с диска, минуя файловую систему? -- Почти всегда. -- А кластер?...