MySQL: план базы данных для ведения EOD-данных о запасах
Более широкий взгляд: план базы данных для поддержки данных EOD.
Инструменты под рукой: я планирую использовать базу данных MySQL 4.1+ вместе с PHP. Пользовательский DBAL (на основе mysqli) реализован на PHP для работы с MySQL. Однако я открыт для любых других механизмов баз данных, если они доступны бесплатно и работают с операторами SQL:P
Проблемная область: мне нужно спланировать базу данных для моего проекта, чтобы поддерживать данные EOD для акций. Поскольку количество запасов, хранящихся в базе данных, будет огромным, поэтому процесс обновления данных EOD для них будет довольно тяжелым процессом в конце дня. Само собой разумеется, я нахожусь на разделяемом хостинге и должен избежать узкого места производительности MySQL, во время начального запуска. Однако может перейти к VPS позже.
Вопросы:
1. Могут ли нормализованные схемы выполнять интенсивное обновление без проблем с производительностью?
2. Анализ, основанный на популярных алгоритмах, таких как MACD и CMF, должен быть выполнен на данных EOD, чтобы определить конкретную тенденцию в акциях, данные анализа снова должны быть сохранены для дальнейшего использования. Данные анализа будут рассчитываться после обновления данных EOD за день. Так что с нормальными схемами все в порядке, если учитывать проблему производительности? Также мне нужно будет получать данные EOD и Analysis довольно часто!
Разработка:
1 оператор INSERT (для вставки данных EOD) + 1 оператор INSERT (для вставки данных анализа)
= 2 заявления INSERT * 1500 акций (для запуска)
= 3000 операторов INSERT сделано назад 2 назад!
В дальнейшем я планирую добавлять больше акций по мере роста проекта, поэтому я также смотрю на масштабируемость.
Хотя я не знаю о концепции DW (только слышал о ней), но, если с точки зрения производительности, она более жизнеспособна, чем OLTP, я готова дать ей шанс.