Оптимально ли хранение и использование в БД json строки?
В БД хранятся данные с биржи.
Сейчас там хранится только цена. Поэтому, для одной валюты - один столбец.
Но понадобилось хранить другие данные, связанные с этой валютой (ask, bid, average...).
Предполагаю хранить все данные в виде json строки. А именно изменить поле USD (тип Decimal) на поле USD (тип char или предложите другой тип получше?). Около 100 символов мне хватит.
Основная операция с бд - выборка. SELECT.
Выбрать все значения, где поле USD и время больше какого-то числа и время меньше числа.
Обычно, в единоразовой выборке около 100000 значений.
И сейчас все работает достаточно неплохо.
Как такое изменение отразится на нагрузке/быстродействии системы?
Есть вариант использовать больше полей. Но учитывая, что сейчас их 50, а новых данных минимум 5, то в таблице будет уже 250 полей.
Или больше таблиц. Для каждого типа данных (ask, bid, average...) - своя таблица.
Оптимально ли хранение и использование в БД json строки?
Какой вариант лучше выбрать? json строка, больше полей, больше таблиц?
Для правильного вопроса надо знать половину ответа
Достаточно добавить одно поле - валюта, и вуаля, в вашу таблицу можно записать сколько угодно различных валют. А если правильно построить индекс, то и работа с таблицей останется быстрой.
Evgeniy S, Добавляем поле `currency`, куда записывается тип валюты ('USD', 'RUB', 'EUR', ...). После этогго в базе можно хранить все валюты одновременно.
многие базы сейчас нативно поддерживают json-поля.
вопрос в том, что потом с этими данными делать. может, стоит изначально посмотреть на документооринтированную бд?
Это имеет смысл, только если вы не собираетесь фильтровать/сортировать/группировать по данным из JSON поля. Если что-то из этого нужно, то лучше разбить, и добавить нужное количество полей/таблиц.