![]() |
|
|
![]()
|
|
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
Привет, друзья!
Обращаюсь за советом, так как самостоятельно ничего не придумывается, а готовые решения в виде файлов не очень устраивают. Задача: придумать, как хранить в БД типа MSSQL трехмерный массив размером минимум 1кк*1кк*2000 по ячеечкам - чтобы к каждой был доступ легкий Есть какие-нибудь мысли? -------------------- Всем добра |
|||
|
||||
| panter |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 10.1.2011 Где: Санкт-Петербург Репутация: нет Всего: нет |
И навешиваешь индексы на cell_x, cell_y, cell_z. |
|||
|
||||
| Silent |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 252 Регистрация: 3.10.2006 Репутация: 1 Всего: 9 |
Согласен с panter, если работать с MSSQL, то создаем таблицу
и юзаем на здоровье конкретную ячейку, например, a[0][0][0]
Но доступ таким образом будет достаточно долгим, по сравнению с памятью. Где эти данные используются? Возможно, стоит применить распределенную обработку, или те же самые файлы для хранения массива поблочно. Может быть, уважаемая SoWa, скажете, какую задачу решаете - наверняка есть способ обрабатывать ваши данные быстрее, чем с хранением в SQL? |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Т.е. 2*10^15 элементов? ты хорошо подумал? даже если предположить, что размер элемента 1 байт, это получится таблица на 2 петабайта... я уже даже не спрашиваю, где ты её хранить собираешься - как ты её получишь? даже тупо передача такого объёма с винта на винт (существуй такие винты) займёт несколько лет... Или речь идёт о [censored] как разреженных данных? ну тогда хранить в структуре, описанной выше, а обрабатывать, наверное, в зависимости от целей либо напрямую, либо через OLAP. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
О да, спасибо за советы!
Кстати, оказалось, высоты массива достаточно 100, а не 2000. Поэтому размер уменьшается до 100 терабайт Хотя если там будет int, то 400 терабайт. Думаю, что 1кк это тоже многовато, и там можно будет в 10 или 100 раз порезать. -------------------- Всем добра |
|||
|
||||
| миг |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 15.9.2008 Репутация: нет Всего: 1 |
в С++
int(16 разрядный)- принимает значения в диапазоне (-32768 до +32767). Занимает 2 байта памяти int(32 разрядный)- принимает значения в диапазоне (-2 147 483 648 до +2 147 483 647). Занимает 4 байта памяти. вы действительно собираетесь пользоваться всем этим диапазоном чисел? Рекомендую вам определиться с максимальным и минимальным числом, который будет записываться в базу данных. Исходя из этого можно будет выбрать наименьший размер данных для хранения информации. Возможно придется работать с битовыми полями. --------------------
Oaks may fall when reeds stand the storm. |
|||
|
||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
Хранимое значение от нуля до нескольких миллионов(ориентировочный максимум 40кк).
Но это планы на лето Добавлено через 3 минуты и 29 секунд Если на каждого пользователя выделять по 5Мб памяти, то это кубик стороной 173. Неплохо. -------------------- Всем добра |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
При
не 173, а 107. Как-то далековато от заявленных изначально миллионов... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
107, вероятно я ошибся.
Пользователь не один ведь будет... Мильен - это на 10000 пользователей программа-максимум. -------------------- Всем добра |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |