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

Помогите Два вопроса от дикого нубаса в разрботке плагинов.

Еще от кол-во записей, ключей и собственно самого запроса зависит.
6052bd862e.png
Ну вот, пожалуйста, наглядный пример эффективности использования баз данных.
0.0001 сек - не так уж и долго, можно даже подождать.

Ну да, справедливо, SELECT запросы, например, вообще нулевую нагрузку создают, чуть больше - DELETE и INSERT
 
Ну вот, пожалуйста, наглядный пример эффективности использования баз данных.
0.0001 сек - не так уж и долго, можно даже подождать.

Ну да, справедливо, SELECT запросы, например, вообще нулевую нагрузку создают, чуть больше - DELETE и INSERT
На сколько я помню, запросы mysql больше заточены под вставку, чем под выборку(без key), если же добавлять key, то в теории, выборка должна работать быстрее, чем вставка. (Могу ошибаться, но вроде так оно и есть)
 
На сколько я помню, запросы mysql больше заточены под вставку, чем под выборку(без key), если же добавлять key, то в теории, выборка должна работать быстрее, чем вставка. (Могу ошибаться, но вроде так оно и есть)


А мне вот совершенно наоборот кажется. Ладно, это не столь важно.
 
Присоединяюсь и голосую за MySQL. Автору темы в любом случае стоит понять, что есть долговременное постоянное хранилище (будь то MySQL или YAML) и кратковременное в памяти плагина (будь то HashMap либо что-то ещё), и их не стоит путать — нужно правильно выбрать обе составляющие и написать код, который решает поставленную задачу оптимально используя оба хранилища.

Как мне видится решение конкретно поставленной здесь задачи, это MySQL со статой, которая подгружается из БД в HashMap только для тех игроков, которые зашли/онлайн, плюс держится закэшированной после их выхода, и неспеша обновляется в фоне при изменении / выключении плагина. Ассисты держать вполне в памяти, момент перезагрузки сервера для них не учитывать, списав на погрешность.
 
Как мне видится решение конкретно поставленной здесь задачи, это MySQL со статой, которая подгружается из БД в HashMap только для тех игроков, которые зашли/онлайн, плюс держится закэшированной после их выхода, и неспеша обновляется в фоне при изменении / выключении плагина. Ассисты держать вполне в памяти, момент перезагрузки сервера для них не учитывать, списав на погрешность.
Меня опередили.
Поддерживаю, бд + кеш - лучший вариант
 
Спасибо всем за ваши ответы! Вы мне очень помогли! Тема закрыта - решено!
 
Хешмапки это конечно хорошо, только вот живут они до первой перезагрузки сервер. Набивал ты стату, я взял написал релоад, и где твои хешмапки? Правильно, они теперь пустые, класс. Бред написал.

Разумный же вариант - хранить все это дело в базе данных, MySQL, например. Статистику игрока загружать асинхронно при входе на сервер и класть во временный массив, при выходе игрока ее записывать в БД, понятное дело.
Я лично как нубас сохраняю статистику в YAML, тупо потому что не умею пользоваться MySQL, достаточно одного метода, который будет хешировать значения при входе.
 
Я лично как нубас сохраняю статистику в YAML, тупо потому что не умею пользоваться MySQL, достаточно одного метода, который будет хешировать значения при входе.
Хешировать значения? Я немного не понял, о чем идет речь, если честно. Кстати, в обучении работы с БД никакой сложности нет
 
Хешировать значения? Я немного не понял, о чем идет речь, если честно. Кстати, в обучении работы с БД никакой сложности нет
Ну, под хешированием я подразумевал погружение данных из YAML в хешмап, а вот БД постичь не могу, но считаю что было бы в разы удобней, нежели YAML.
 
Не вижу в этом никакого практического смысла. Все данные, которые хранит ваша YAML конфигурация, уже хранится в памяти приложения. Это масло масляное
 
Хешмапки это конечно хорошо, только вот живут они до первой перезагрузки сервер. Набивал ты стату, я взял написал релоад, и где твои хешмапки? Правильно, они теперь пустые, класс. Бред написал.

Разумный же вариант - хранить все это дело в базе данных, MySQL, например. Статистику игрока загружать асинхронно при входе на сервер и класть во временный массив, при выходе игрока ее записывать в БД, понятное дело.
Лучше воспользоваться готовыми решениями, если они уже предустановлены на сервере. Даже те же Scoreboard сохраняются в папку мира для каждого игрока
 
Лучше воспользоваться готовыми решениями, если они уже предустановлены на сервере. Даже те же Scoreboard сохраняются в папку мира для каждого игрока
Нуу, не знаю. Хранить статистику игрока в его персональном скорборде? Идея интересная, но немного костыльная. Надо будет попробовать, кстати
 

Поделиться этой страницей

Назад
Верх