1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем NameIs, 31 дек 2020.

  1. Автор темы
    NameIs

    NameIs Ньюби

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

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

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

    Так же на счет обновления данных в базе данных. Лучше сразу вносить данные при их обновление в таблицу, или же собирать информацию в переменную, и обновлять ее каждые N промежутки? И если делать запросы к бд каждую секунду, сильно ли это нагружает?
     
  2. Nordia

    Nordia Активный участник Пользователь

    Баллы:
    66
    используй HikariCP
     
  3. Nordia

    Nordia Активный участник Пользователь

    Баллы:
    66
    всё норм будет
     
  4. ifxandy

    ifxandy Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    witwar
    Смотря какие запросы, базу писали не дураки и минимум, что можно выбросить это кэширование, если запросы однотипные, то скорее всего не убьёт это базу.

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

    NameIs Ньюби

    Баллы:
    1
    Поэтому для меня этот вариант так себе
     
  6. Автор темы
    NameIs

    NameIs Ньюби

    Баллы:
    1
    Пытался его, смотрел гайды по нему Но как-то не особо получается с ним
     
  7. HogeltBellai

    HogeltBellai Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    HogeltBellai
    Привет,
    могу дать только пару советов, самое лучшее и просто подключение HikariCP,
    это использовать его либу.
    Импортируешь в либу и (У IntelliJ IDEA) просто в билде включаешь его в експорт.
    По использованию: просто закрывай Connect и PreparedStatement когда они не нужны.

    И да забудь про работу с мускулом, сервер будет сильно тормозить.
     
  8. Автор темы
    NameIs

    NameIs Ньюби

    Баллы:
    1
    И да забудь про работу с мускулом, сервер будет сильно тормозить.[/QUOTE]
    SQLITE? В чем проблема, на серваке единственный плагин будет.
     
  9. Nordia

    Nordia Активный участник Пользователь

    Баллы:
    66
    если ты прям супер новичек то юзай spring data jpa + h2, там даже настраивать ничего не надо, просто закинул зависимости и всё
     
  10. DaemanS

    DaemanS Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    DaemaNSpawn
    стремная тема на самом деле этот Ваш H2, случайно убил процесс сервера, и база с 70к данными просто поломалась, теперь стороной обхожу h2 этот -_-
     
  11. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ну от дураков ничего не спасет. С таким же успехом можно убить и процесс мускула и потерять данные.
     
  12. _Ruleto4ka_

    _Ruleto4ka_ Активный участник Пользователь

    Баллы:
    76
    *Бэкап вышел с чата*
     
  13. Nordia

    Nordia Активный участник Пользователь

    Баллы:
    66
    ну сам виноват
     
  14. Milki_way

    Milki_way Активный участник Пользователь

    Баллы:
    76
    Почему сервер будет сильно тормозить?

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

    Dymeth Активный участник Пользователь

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

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