Russian Qt Forum
Ноябрь 22, 2024, 17:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: База данных SQL расположенная в памяти.  (Прочитано 12057 раз)
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« : Февраль 09, 2011, 10:57 »

Есть задачка - нужно быстро делать выборки из базы данных. Важна скорость, а не надежность.
Принято было решение засунуть базу в память и работать там с ней.

Но никак не можем определиться с выбором базы данных - есть ли у кого опыт? Почитал про MySQL и таблицы типа HEAP - что то скорость не особо выростает по сравнению с ISAM.

Записан
Kolobok
Гость
« Ответ #1 : Февраль 09, 2011, 11:11 »

Базы данных и так кэшируют данные в памяти, если памяти хватает.
Записан
_govorilka
Гость
« Ответ #2 : Февраль 09, 2011, 11:26 »

Можно попробывать SQLite: http://www.sqlite.org/inmemorydb.html. Возможно, его производительности и скорости хватит.
Записан
BRE
Гость
« Ответ #3 : Февраль 09, 2011, 11:33 »

2 Admin:
http://www.garret.ru/fastdb.html

Ты сразу не плюйся.  Улыбающийся
Да, не стандартное решение, но скорость у нее была не плоха.
До боевых проектов она у меня не дошла, но хорошо погонял ее в свое время на тестах.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #4 : Февраль 09, 2011, 12:42 »

Ага спасибо попробую - насчет кеширования всеми базами - фиг знат. А вдруг не закешируют то что нада?
Попробую отпишусь
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Февраль 09, 2011, 12:50 »

Admin, на счет кеширования в настройках надо копать. Вроде, что-то такое в постгресе или огнептице было.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #6 : Февраль 09, 2011, 13:36 »

Вот тесты я видел насчет mysql - резкого ускорения нет к сожалению)
Да и не нужно мне такие навороченные базы - это просто некоторый массив данных держащийся в памяти. Хочеться просто пробежаться по нему SQL запросом.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #7 : Февраль 09, 2011, 14:14 »

Можно попробывать SQLite: http://www.sqlite.org/inmemorydb.html. Возможно, его производительности и скорости хватит.

Тут как я понял толко 1 раз базу можно открыть?

Код:
So, opening two database connections each with the filename ":memory:" will create two independent in-memory databases.
Записан
_govorilka
Гость
« Ответ #8 : Февраль 09, 2011, 16:43 »

Тут как я понял толко 1 раз базу можно открыть?
Код:
So, opening two database connections each with the filename ":memory:" will create two independent in-memory databases.
Я не пробывал создавать в памяти две разные базы. Надо поэкспериментировать...
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #9 : Февраль 09, 2011, 17:07 »

Просто если несколько демонов щупают базу - то они получают разные базы в ответ.
Записан
_govorilka
Гость
« Ответ #10 : Февраль 10, 2011, 06:46 »

Просто если несколько демонов щупают базу - то они получают разные базы в ответ.
Можно написать собственный демон, который будет обращаться к базе, а все остальные будут обращаться к этому демону. Это, наверное, будет более правильно решение, чем несколько процессов, которые будут ковырять один и тот же кусок памяти.
Записан
Barmaglodd
Гость
« Ответ #11 : Февраль 10, 2011, 07:36 »

SQL обязательно? Ключ-значение не подойдёт?
А ещё berkleydb имеет sql интерфейс, и она позволяет работать с несколькими пишущими потоками Улыбающийся
« Последнее редактирование: Февраль 10, 2011, 09:54 от Barmaglodd » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #12 : Февраль 10, 2011, 08:20 »

_govorilka, по заданию скорость - критична. А демон - лишний посредник-тормоз.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #13 : Февраль 10, 2011, 09:16 »

Ключ -значение можно тогда ваще на базу незаморачиваться. Хранить всякие map и set в памяти). Только хотелось бы простые SQL запросы делать. Ща изучаю то что BRE посоветовал.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.067 секунд. Запросов: 23.