Добро пожаловать на Craft‑Bukkit

Всё о Minecraft серверах: гайды, команды, скачивание сборок и полезные советы для администраторов и игроков.

Как оптимизировать базу данных сервера для 500+ игроков

ModeratorPro 14.03.2026 09:40 2
Как оптимизировать базу данных сервера Minecraft для 500+ игроков. MySQL, индексы, партиционирование и очистка.

Как оптимизировать базу данных сервера для 500+ игроков

Когда на сервере 500+ игроков, база данных становится узким горлышком. Медленные запросы вызывают лаги, а неправильные индексы — падение производительности. Я расскажу, как оптимизировать БД для крупного проекта.

1. Выбор СУБД

MySQL — классика, но для 500+ игроков лучше использовать MariaDB или PostgreSQL. MariaDB быстрее на чтении, PostgreSQL — на сложных запросах. Я рекомендую MariaDB 10.6+ с движком InnoDB.

2. Оптимизация структуры таблиц

Используй правильные типы данных: INT вместо BIGINT, VARCHAR вместо TEXT, где возможно. Добавь индексы на часто запрашиваемые поля: user_id, world_id, timestamp. Пример: CREATE INDEX idx_user_id ON player_data (user_id).

3. Партиционирование таблиц

Разбей большие таблицы по месяцам или по игрокам. Для таблицы логов: PARTITION BY RANGE (YEAR(created_at)) (PARTITION p2025 VALUES LESS THAN (2026), PARTITION p2026 VALUES LESS THAN (2027)). Это ускорит запросы на чтение и упростит очистку старых данных.

4. Настройка соединений

В плагинах, использующих БД (LuckPerms, CoreProtect), настрой пул соединений: pool-size: 10, connection-timeout: 30000. Не открывай новое соединение для каждого запроса — это убивает производительность.

5. Регулярная очистка

Настрой автоматическое удаление старых логов: DELETE FROM player_log WHERE created_at < NOW() - INTERVAL 30 DAY. Используй события MySQL для автоматической очистки. Храни только нужные данные.

На моём сервере после оптимизации БД время ответа сократилось с 200ms до 15ms. Игроки перестали жаловаться на лаги при входе.

← К списку статей

💬 Комментарии (0)

⏳ Все комментарии проходят модерацию

🔒 Войдите, чтобы оставить комментарий

😊 Пока нет комментариев. Будьте первым!