Каждый день или чуть реже нужно будет обновлять данные для 5-40 млн записей,
это обязательно сделать за один заход?
- поиск - есть ли запись в базе данных с указанным названием, если есть то обновляем данные там.
какого вида название? текст, хеш, инт? Длинна? В общем случае выборка по индексу происходит ОЧЕНЬ быстро, тут больше от железа зависит чем от базы.
- поиск по базе данных с указанными параметрами (например, чтобы такой-то параметр был больше указанного значения и подобные условия)
Индексы решают, если задача простые выборки из плоской таблицы - будет быстро, кроме вариантов поиска а ля
`field` like %some text%.
Хочу узнать какими способами можно организовать структуру хранения большой информации ?
читайте "нормальные формы бд".
Какую базу данных выбрать ? Подойдет ли MySQL для этих задач?
Мускуль или постгес, тут уже надо смотреть на связку железо/софт, ибо у вас задача либо сильно нестандартная, либо что-то вы неверно проектируете, у вас же "суперсекретная задача", соответственно весьма пальцетыкательный ответ.
UPD:
Данные будут храниться в простом виде: строчка id,
надеюсь, это опечатка, в смысле - id типа integer?
Или может только хранить скажем категории и их номер в отдельной таблице. А в основной писать только номер категории.
читайте про нормализацию, нет, ну правда, это ВАЖНО.
Числовые данные ВСЕГДА работают быстрее смешанных(альфанумерик) при равной длине(в "символах"), надеюсь это очевидно. Соответственно выборка where categoryid = 55 будет работать быстрее чем where category = 'somecategoryname'. В остальном - не вижу особых проблем.