← База знаний
Разработка

MySQL для GMod: подключение и безопасность

Отдельный пользователь базы, кодировка, индексы, запросы и резервное копирование.

Отдельная база и пользователь

Создайте базу с utf8mb4 и отдельного пользователя только для GMod. Выдайте ему доступ только к нужной базе. Не используйте root и не открывайте MySQL в интернет без необходимости.

Запросы

Всегда используйте параметризованные запросы. Никогда не склеивайте SteamID, имя игрока или текст из net-сообщения с SQL-строкой. Для часто используемых условий и сортировки добавляйте индексы, но не индексируйте каждое поле без измерений.

Не блокируйте игровой поток

Предпочитайте асинхронный драйвер и обрабатывайте успех и ошибку. Интерфейс игрока не должен навсегда зависать, если база временно недоступна. Критические операции проектируйте так, чтобы повтор запроса не списал деньги дважды.

Резервные копии

Автоматически создавайте дампы, храните несколько поколений и периодически проверяйте восстановление на отдельной базе. Копия, которую никогда не пробовали восстановить, не считается проверенной.