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

Помогите MySQL, и работа с ним

NameIs

Ньюби
Баллы
1
КТО НЕ ЖЕЛАЕТ ПОМОГАТЬ, НЕ ПОМОГАЙТЕ. Я ПОНИМАЮ ЧТО ФОРУМ СОЗДАН ДЛЯ BUKKIT-КОДИНГА.

Просмотрел кучу гайдов по работе с MySQL, с использованием JDBC. Вопрос не в том, как с ним работать, а как его есть.

Есть подключение через JDBC на удаленный сервер. Как лучше использовать его? Каждый раз открывать новое подключение, и закрывать его при выполнении задачи. Или же открывать новое подключение каждый раз, при обращении к базе данных ( и делать ли это в Асинхронном потокое? ). Или же иметь постоянное подключение к базе данных, и обновлять его при дисконнекте?

Так же на счет обновления данных в базе данных. Лучше сразу вносить данные при их обновление в таблицу, или же собирать информацию в переменную, и обновлять ее каждые N промежутки? И если делать запросы к бд каждую секунду, сильно ли это нагружает?
 
Есть подключение через JDBC на удаленный сервер. Как лучше использовать его? Каждый раз открывать новое подключение, и закрывать его при выполнении задачи. Или же открывать новое подключение каждый раз, при обращении к базе данных ( и делать ли это в Асинхронном потокое? ). Или же иметь постоянное подключение к базе данных, и обновлять его при дисконнекте?
используй HikariCP
 
И если делать запросы к бд каждую секунду, сильно ли это нагружает?
Смотря какие запросы, базу писали не дураки и минимум, что можно выбросить это кэширование, если запросы однотипные, то скорее всего не убьёт это базу.

Как лучше использовать его? Каждый раз открывать новое подключение, и закрывать его при выполнении задачи. Или же открывать новое подключение каждый раз, при обращении к базе данных ( и делать ли это в Асинхронном потокое? ). Или же иметь постоянное подключение к базе данных, и обновлять его при дисконнекте?
Тут нужно найти баланс, ты можешь зарегистрировать транзакцию и делать всё через неё, это будет быстрее, но при этом, другие запросы к базе будут отклонены, т.е. желательно бы брать какую то очередь, сделать транзакцию с опр. временем жизни и через неё работать. Помимо этого, если ты раз в опр. время будешь сохранять инфу, то тут может случиться потеря данных, например если сервер крашнется. Сохранение не произойдёт, а при краше ядро не вызовет onDisable для плагинов, т.е. сохранить данные ты не сможешь. Вот поэтому надо либо найти оптимальное время, за которое не накопится слишком много важных данных или перенести это в конфиг, чтобы админ сам думал, сколько инфы ему в случае чего не страшно потерять.
 
Смотря какие запросы, базу писали не дураки и минимум, что можно выбросить это кэширование, если запросы однотипные, то скорее всего не убьёт это базу.


Тут нужно найти баланс, ты можешь зарегистрировать транзакцию и делать всё через неё, это будет быстрее, но при этом, другие запросы к базе будут отклонены, т.е. желательно бы брать какую то очередь, сделать транзакцию с опр. временем жизни и через неё работать. Помимо этого, если ты раз в опр. время будешь сохранять инфу, то тут может случиться потеря данных, например если сервер крашнется. Сохранение не произойдёт, а при краше ядро не вызовет onDisable для плагинов, т.е. сохранить данные ты не сможешь. Вот поэтому надо либо найти оптимальное время, за которое не накопится слишком много важных данных или перенести это в конфиг, чтобы админ сам думал, сколько инфы ему в случае чего не страшно потерять.
Поэтому для меня этот вариант так себе
 
Привет,
могу дать только пару советов, самое лучшее и просто подключение HikariCP,
это использовать его либу.
Импортируешь в либу и (У IntelliJ IDEA) просто в билде включаешь его в експорт.
По использованию: просто закрывай Connect и PreparedStatement когда они не нужны.

И да забудь про работу с мускулом, сервер будет сильно тормозить.
 
если ты прям супер новичек то юзай spring data jpa + h2, там даже настраивать ничего не надо, просто закинул зависимости и всё
 
если ты прям супер новичек то юзай spring data jpa + h2, там даже настраивать ничего не надо, просто закинул зависимости и всё
стремная тема на самом деле этот Ваш H2, случайно убил процесс сервера, и база с 70к данными просто поломалась, теперь стороной обхожу h2 этот -_-
 
стремная тема на самом деле этот Ваш H2, случайно убил процесс сервера, и база с 70к данными просто поломалась, теперь стороной обхожу h2 этот -_-
Ну от дураков ничего не спасет. С таким же успехом можно убить и процесс мускула и потерять данные.
 
стремная тема на самом деле этот Ваш H2, случайно убил процесс сервера, и база с 70к данными просто поломалась, теперь стороной обхожу h2 этот -_-
*Бэкап вышел с чата*
 
Привет,
могу дать только пару советов, самое лучшее и просто подключение HikariCP,
это использовать его либу.
Импортируешь в либу и (У IntelliJ IDEA) просто в билде включаешь его в експорт.
По использованию: просто закрывай Connect и PreparedStatement когда они не нужны.

И да забудь про работу с мускулом, сервер будет сильно тормозить.
Почему сервер будет сильно тормозить?

Из-за забитости потоков задачами?
Или из-за долго обработки не которых не кэшированных обращений?
 
Почему сервер будет сильно тормозить?

Из-за забитости потоков задачами?
Или из-за долго обработки не которых не кэшированных обращений?
У чувака шиза. Если не делать запросы к базе в основном потоке и расставлять индексы, то ничего тормозить не будет. MySQL рассчитан на высокие нагрузки.
Другой вопрос в том, что это уже достаточно устаревшая технология на текущий момент. На замену пришла MariaDB, либо же можно взять PostgreSQL
 

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

Назад
Верх