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

Помогите Медленная запись в SQLite.

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

Статус темы:
Закрыта.
  1. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Всем привет. Совсем не знаю, что мне делать. При записи в базу проходит задержка, а если записей будет много, так вообще сервер может повиснуть, например установив блок мне нужно записывать его в базу и в мапу параллельно, что мне очень нужно, но как это сделать с минимальными задержками не знаю. Параметр synchronous отключил, но это мало дало результата. Подскажите, что можно сделать или есть какие-нибудь аналоги?
     
  2. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Почему нельзя записывать блок сначала в мапу, а при отключении сервера в бд?
     
  3. Dan_Ender

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

    Баллы:
    76
    Асинхрон сервер не положит
    Код:
    Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {});
     
  4. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Некоторые данные приходится обновлять. Не всегда нужно записывать.
     
  5. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Эм. Зачем асинхронный шедулер?
     
  6. Dan_Ender

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

    Баллы:
    76
    Выполнит задание асинхронно, там и записывай все, что надо, в базу.
    Ускорить запись ты никак не сможешь.
     
  7. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Смысла от шедулера нет, у меня методы записи тоже выполняются асинхронно.
     
  8. Dan_Ender

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

    Баллы:
    76
    Тогда почему ты говоришь это
     
  9. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Неправильно выразился. Чем больше запросов на запись, тем ниже TPS => задержка.
     
  10. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Хорошо, если ускорить запись нельзя, то как лучше записывать данные, при этом не потеряв их?
     
  11. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Попробовал поюзать MySQL и он оказался офигеть каким быстрым. Все данные вписываются без задержек.
     
  12. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Уверен что запрос полностью в асинхроне?
     
  13. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Надеюсь, что да.
     
  14. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Хорошо. Каким должен быть метод, чтобы он выполнился в ассинхроном потоке?
     
  15. alexandrage

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

    Баллы:
    173
    Для таких записи нужна некая чанк база, типо такой https://github.com/alexandrage/ChunkConfig.
    Можешь дописать под свои нужды. Пока там только запись ника и координат.
    Никогда не отвалится, сколько бы записей не было.
     
  16. alexandrage

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

    Баллы:
    173
    А SQLite никогда и не где не юзайте. Есть для этого H2 база. Специально для java.
     
  17. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Вообще ничего не понял.
     
  18. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Я недавно ей интересовался, но никак не понял, как ее подключить. Вечно выкидывал фокусы в виде ошибок подключения.
     
  19. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    А насколько быстрей H2 будет SQLite?
     
  20. Exception_Prototype

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

    Баллы:
    96
    На много.
    Если запросы в бд выполняются асинхронно, то серверу должно быть на них пофигу.
    Показывай как ты это делаешь.
     
Статус темы:
Закрыта.

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