2012-03-29 2 views
0

есть ли способ перенести ваши транзакции в память в первую очередь? и после этого сохраняются те же изменения на жестком диске через некоторое время, когда рабочая нагрузка не тяжелая? Im говорит о как 3-5 секунд максимум. Я не могу рисковать держать всю базу данных в памяти, я просто хочу сначала отразить изменения в памяти, чтобы я мог быстро реагировать, без задержки, вызванной жестким диском. есть ли способ сделать это, не помещая всю базу данных в память?mysql как записать изменения в память сначала, а затем на диск

im использование hibernate 3.6, mysql 5.1.22 и разъем mysql 5.1.18. Но я могу изменить на mysql 5.5, если это необходимо

ответ

0

Это то, что делают базы данных в любом случае: удерживайте запись до необходимости записи на диск. Вы не должны беспокоиться об этом, dabatase уже делает это для вас.

Вы можете использовать Memory Storage в MYSQL, если хотите только память для хранения и повышения производительности, но обратите внимание, что данные теряются при завершении работы сервера.

+0

Как я могу избавиться от времени, затраченного на session.flush на спящем режиме? поэтому я предполагаю, что время, потраченное на session.flush, - это просто создание операторов sql и запись в транзакцию базы данных? – kommradHomer

+0

согласен. вы попали туда первым! – T9b

+0

@kommradHomer Я не знаком с NHibernate, но я предполагаю, что session.flush запускает некоторые интенсивные операции, связанные с CPU или IO-Bound, и вполне может заставить базу данных писать какие-то вещи на диск; в любом случае, я чувствую, что проблема должна решаться на стороне кодирования, а не на стороне базы данных. – Icarus