![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Gelos |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 29.4.2007 Репутация: нет Всего: нет |
Суть вопроса. Есть база данных, я разбил всю её на необходимые записи. Теперь мне нужно эти записи проидексировать, чтобы я мог по номеру записи тут же выводить её на экран. Записей много. больше 30000. Пока в голове мысль сделать массив массивов, чтобы по индексу одного обращаться к массивам, в которые занесены эти записи.
но стоит проблема, как динамически сделать 30000 масивов. Есть ли другой способ индексации. Записи в БД не имеют никаких идендификаторов, которые можно было бы привязать к нумерации от 0 и так далее. ![]() P.S Извиняюсь за пропуск поля отвечающего за язык. Больше не повториться. P.S.P.S VC++ Это сообщение отредактировал(а) Gelos - 11.5.2007, 17:28 |
|||
|
||||
Gelos |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 29.4.2007 Репутация: нет Всего: нет |
keenara,
дабы потом просто искать это поле в записях и по нему выводить? Тогда, можно так и не извращацца. Считаем, что записи нумеруются, с первой и по последнюю. В цикле перебираем ех и находим ту , которую укажем. Минусы - каждый раз перебор всех записей. А я хотел, чтобы они хранились все в памяти, тогда скорость обращения будет максимальной. |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
что вы под этим подразумеваете? на случай, если вы сами плохо представляете, что хотите получить, посмотрите в сторону std::map, std::hash_map, std::set, std::hash_set возможно вам нужно что то из этого набора ![]() Это сообщение отредактировал(а) zkv - 12.5.2007, 20:47 |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
ну например одна большая BMP-шка может столько занять ![]() Замечали, сколько, к примеру, кушает Photoshop? И ничего, не давится. ![]() Это я к тому, что надо исходить из конкретных требований к программе, ну почему бы и не взять себе каких то 30 метров для достижения требуемого быстродействия, если никто не накладывает ограничения? Исходить надо из того насколько эта самая производительность увеличится, и какой ценой, и нужна ли вообще ее увеличивать. |
|||
|
||||
Gelos |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 29.4.2007 Репутация: нет Всего: нет |
keenara,
C точки зрения загрузки памяти. Признаю, учитывая слабость компов, большей их части, загрузка ~24-35 метров в память, не есть хорошо. Сортировать записи мне в данном случае самому не довзволено. Нужно использовать тот порядок , в котором они уже идут. ИМХО, добаление полей, в которые будет писаться индексы, или что то на подобие, это будет уже накрутка лишнего. Пришли к тому что имеем в начале. в записях нет идендификаторов. просто есть куча записей, и я их могу читать одну за другой. Что то я пока более простого подхода для данного случая, как просто находить нужную по счету запись с конца и выводить её, не вижу. Медленно, конечно, каждый раз перебирать всю базу. Но держать в памяти 30 мб мне вдруг стало жалко... ![]() |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
keenara, вообщем это все риторика, я только хотел сказать, что не зная задачи ничего нельзя сказать о том сколько оперативки ей можно дать.
Например данные представляют из себя результаты некоторых экспериментов, по которым прога должна построить некоторую модель, причем вычисления довольно ресурсоемкие, и каждый шаг вычислений требует одновременного участия сразу многих данных. И представь, что все эти вычисления занимают несколько часов (да что там часов - дней ![]() Думаю при запуске такой проги, на компьютер даже дышать будут бояться, не то чтобы за ним еще и работать. Как считаешь, скажут тебе в таком случае спасибо, даже за значительную экономию оперативки, за счет даже небольшого снижения производительности? Вообщем, не зная задачи говорить не о чем. |
|||
|
||||
dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |