Название: База данных SQL расположенная в памяти. Отправлено: Admin от Февраль 09, 2011, 10:57 Есть задачка - нужно быстро делать выборки из базы данных. Важна скорость, а не надежность.
Принято было решение засунуть базу в память и работать там с ней. Но никак не можем определиться с выбором базы данных - есть ли у кого опыт? Почитал про MySQL и таблицы типа HEAP - что то скорость не особо выростает по сравнению с ISAM. Название: Re: База данных SQL расположенная в памяти. Отправлено: Kolobok от Февраль 09, 2011, 11:11 Базы данных и так кэшируют данные в памяти, если памяти хватает.
Название: Re: База данных SQL расположенная в памяти. Отправлено: _govorilka от Февраль 09, 2011, 11:26 Можно попробывать SQLite: http://www.sqlite.org/inmemorydb.html (http://www.sqlite.org/inmemorydb.html). Возможно, его производительности и скорости хватит.
Название: Re: База данных SQL расположенная в памяти. Отправлено: BRE от Февраль 09, 2011, 11:33 2 Admin:
http://www.garret.ru/fastdb.html (http://www.garret.ru/fastdb.html) Ты сразу не плюйся. :) Да, не стандартное решение, но скорость у нее была не плоха. До боевых проектов она у меня не дошла, но хорошо погонял ее в свое время на тестах. Название: Re: База данных SQL расположенная в памяти. Отправлено: Admin от Февраль 09, 2011, 12:42 Ага спасибо попробую - насчет кеширования всеми базами - фиг знат. А вдруг не закешируют то что нада?
Попробую отпишусь Название: Re: База данных SQL расположенная в памяти. Отправлено: Пантер от Февраль 09, 2011, 12:50 Admin, на счет кеширования в настройках надо копать. Вроде, что-то такое в постгресе или огнептице было.
Название: Re: База данных SQL расположенная в памяти. Отправлено: Admin от Февраль 09, 2011, 13:36 Вот тесты я видел насчет mysql - резкого ускорения нет к сожалению)
Да и не нужно мне такие навороченные базы - это просто некоторый массив данных держащийся в памяти. Хочеться просто пробежаться по нему SQL запросом. Название: Re: База данных SQL расположенная в памяти. Отправлено: Admin от Февраль 09, 2011, 14:14 Можно попробывать SQLite: http://www.sqlite.org/inmemorydb.html (http://www.sqlite.org/inmemorydb.html). Возможно, его производительности и скорости хватит. Тут как я понял толко 1 раз базу можно открыть? Код: So, opening two database connections each with the filename ":memory:" will create two independent in-memory databases. Название: Re: База данных SQL расположенная в памяти. Отправлено: _govorilka от Февраль 09, 2011, 16:43 Тут как я понял толко 1 раз базу можно открыть? Я не пробывал создавать в памяти две разные базы. Надо поэкспериментировать...Код: So, opening two database connections each with the filename ":memory:" will create two independent in-memory databases. Название: Re: База данных SQL расположенная в памяти. Отправлено: Admin от Февраль 09, 2011, 17:07 Просто если несколько демонов щупают базу - то они получают разные базы в ответ.
Название: Re: База данных SQL расположенная в памяти. Отправлено: _govorilka от Февраль 10, 2011, 06:46 Просто если несколько демонов щупают базу - то они получают разные базы в ответ. Можно написать собственный демон, который будет обращаться к базе, а все остальные будут обращаться к этому демону. Это, наверное, будет более правильно решение, чем несколько процессов, которые будут ковырять один и тот же кусок памяти.Название: Re: База данных SQL расположенная в памяти. Отправлено: Barmaglodd от Февраль 10, 2011, 07:36 SQL обязательно? Ключ-значение не подойдёт?
А ещё berkleydb имеет sql интерфейс, и она позволяет работать с несколькими пишущими потоками :) Название: Re: База данных SQL расположенная в памяти. Отправлено: Пантер от Февраль 10, 2011, 08:20 _govorilka, по заданию скорость - критична. А демон - лишний посредник-тормоз.
Название: Re: База данных SQL расположенная в памяти. Отправлено: Admin от Февраль 10, 2011, 09:16 Ключ -значение можно тогда ваще на базу незаморачиваться. Хранить всякие map и set в памяти). Только хотелось бы простые SQL запросы делать. Ща изучаю то что BRE посоветовал.
|