Вход

Просмотр полной версии : [Вопрос] Сохранение аккаунта



Mikiadier
27.02.2017, 02:37
Как лучше реализовать систему сохранения аккаунт? Когда игрок выходит с сервера или выполнять запрос в БД при каждом изменении значения переменной?
Если делать по 2 варианту, то будет ли большая нагрузка на БД при частых запросах? Дайте совет пожалуйста.

DeimoS
27.02.2017, 12:58
Второй вариант для всех значений, что можно контролировать на стороне сервера (деньги/уровень игрока/ID фракции и т.п.). Все значения, что часто изменяются и зависят от данных, отосланных игроком серверу (позиция/время на сервере и т.п.) уже сохраняй или через таймер, или при выходе.

Если всё реализовать правильно, нагрузка будет в пределах нормы.

ziggi
27.02.2017, 23:59
Я бы хранил всё в памяти и сохранял бы при выходе и, например, каждые 5 минут (естественно, не всех игроков сразу).

vasyok28
28.02.2017, 00:25
У меня так:
1. Сохранение при выходе (не все данные - п2)
2. Допустим, лицензии, покупка домов, аксессуары. Сохранить при покупки. ( не пихать при выходе )
3. Игровая валюта, передача денег И так далее сразу, допустим ставить проерку если больше > 50000 через 30 сохранить в БД, не сразу главное.

Guldan
28.02.2017, 00:54
Тоже над этим думаю, но тест показал что сохранение на mysql r39-6 за 0мс (для одной действии) а если сохранение на 1000 игроков то мб 3 мс (не помню мажет может и 1 мс)

vasyok28
28.02.2017, 01:35
Тоже над этим думаю, но тест показал что сохранение на mysql r39-6 за 0мс (для одной действии) а если сохранение на 1000 игроков то мб 3 мс (не помню мажет может и 1 мс)

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

DeimoS
28.02.2017, 09:49
У вас в качестве наглядного примера есть крупные проекты, в которых данные сохраняются сразу при изменении (об этом можно понять зайдя в личный кабинет на форуме и потом начав, например, передавать деньги, обновляя страницу личного кабинета. Все данные в БД попадут сразу). Никто из них не страдает от лагов по этому поводу.