2015-03-16 6 views
0

Первый раз здесь! Мне бы хотелось, чтобы мнения людей были здесь. Я собираю ежедневные данные о запасах за последние 10 лет (примерно 2500 строк данных, которые не являются значительными), однако у меня более 200 акций (возможно, возрастет до 1000) с примерно 30 отдельными полями на акцию. Итак, мы говорим о таблице, которая изначально насчитывала 6000 столбцов, которые имеют более 30000 столбцов в один день, но более подходящим образом может быть только 6000-10000 столбцов для начала. Я понимаю, что база данных SQL не может быть лучшим подходом, существует множество программ с большими данными, таких как mongodb, hadoop и т. Д. Однако я никогда не использовал их (только SQL)Колонка логики в SQL

Может ли кто-нибудь пролить свет на лучший способ хранения это в SQL. Я знаю, что каждая таблица ограничена 1024 столбцами, люди подсказывают, что я разбиваю это на 10 + отдельные таблицы? Меня интересуют эффекты, которые это имеет на производительность?

Обратите внимание, что каждый запас и его функции будут взаимоисключающими из всех других запасов в базе данных.

Ждет мнения

+0

** какой? (> _ <) ** столько столбцов, в любом случае вы не можете просто отказаться от использования mysql и других баз данных, потому что они отлично работают до сих пор. Да, у вас могут быть инструменты BigData, однако, на мой взгляд, вам нужно оптимизировать вашу проблему , Подумайте о том, чтобы разделить вашу проблему на куски, 1024 (или не знаете точного значения, но я знаю, что это такое, этого достаточно), столбцов достаточно, но вам нужно создать шаблон для сохранения данных. – nobalG

+0

В четко определенной схеме SQL число столбцов не растет, а количество строк. Если каким-либо образом ваше число столбцов растет, у вас возникает серьезная проблема с нормализацией или вы вообще не используете реляционные dbms. – jean

+0

Вы должны прочитать что-то о дизайне реляционной базы данных. Ищите нормализацию базы данных - хорошее начало будет здесь: http://en.wikipedia.org/wiki/Database_normalization. Но для упрощения: когда вы видите таблицу sql с более чем, скажем, 10 столбцами, ваша модель базы данных, вероятно, ошибочна. Это не сложно, иногда нужны больше колонок, но я на 100% уверен, ваша проблема не вызывает столбец 30000. Прочтите статью wiki, пожалуйста. –

ответ

1

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

  • Stock Identifier
  • Дата (или дата/время)
  • 30 или около меры в наличии

Вы, кажется, хотите сохранить вещи в столбцах, которые должны быть в строках.

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

0

Столько колонок - это запах дизайна.

Однако MySQL поддерживает только до 4096 столбцов в таблице. Выдержка из документации CREATE TABLE statement:

Существует жесткий предел 4096 столбцов на таблицу, но эффективный максимум может быть меньше для данной таблицы и зависит от факторов, описанных в разделе D.10.4, “Limits on Table Column Count and Row Size”.

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