|
базу в ппамять и обратно
|
|||
---|---|---|---|
#18+
Для ускорения работы программы часть данных хочу вытянуть в память, а при выходе из программы отправит обновлённые данные обратно. Причём баз три штуки, и пишу универсальную функцию на всех. Запросом Код: sql 1. 2.
успешно получаю список таблиц в базе. Дальше создаю базу Код: sql 1.
строю запрос по шаблону Код: sql 1. 2. 3. 4. 5.
Где вместо "%s" подставляю нужные строки (путь к базе на диске и имена таблиц) Обратная процедура в том же духе. И всё прекрасно работает, кроме одной мелочи. Все PK и связи между таблицами пропадают. Есть ли способ скопировать не только данные, но и всю структуру? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2017, 23:17 |
|
базу в ппамять и обратно
|
|||
---|---|---|---|
#18+
Во первых, не путай базу и таблицу. Ты уже не в FoxPro... Во вторых, то что ты хочешь - нафиг не нужно. Читаешь некий объем из одной или нескольких таблиц и наполняешь прочитанным объекты (экземпляры классов в С++ и Java терминологии). Эти объекты у тебя лежат в памяти, в массиве или списке и ты с ними удобно работаешь. А когда нужно, формируешь insert/update/delete команды и отправляешь их напрямую в базу. Да и бессмысленно копировать данные в :memory: базу из физической. Выигрыш в производительности копеечный, но может и отрицательный получиться. Тебе ж потребуется больше памяти - ОС тебе ее даст, но начнет свапить. А это ты уже контролировать не сможешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2017, 06:41 |
|
базу в ппамять и обратно
|
|||
---|---|---|---|
#18+
White Owl, я не путаю БД и таблицу, в данном случае считываю все таблицы из базы, поэтому и говорю, что базу в память. Может, надо детальнее протестировать этот момент, но разницу в производительности я замечаю даже на таблицах в несколько строк. И предполагаю, что на больших объёмах тенденция сохранится. И копировать некие объёмы не получается, точнее, эти объёмы - единичные. Регулярно надо найти в таблице строку, у которой столбец равен чему-то. и с этой строкой что-то сделать. Может, дело в отсутствии индексов, которые я не задаю при создании, или ещё что, юно дисковая база заметно медленнее базы в памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2017, 11:32 |
|
|
start [/forum/topic.php?desktop=1&fid=54&tid=2008532]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 152ms |
0 / 0 |