Я довольно новичок в использовании MySQL и пытаюсь понять, какой самый эффективный способ хранения предметов инвентаря игрока в моей базе данных.
Итак, вот настройки:
Существует таблица с именем 'player' , и каждому игроку присваивается уникальный 'playerid' , который устанавливается в качестве основного индекса таблицы.
Каждый игрок может иметь до 24 предметов в своем инвентаре, и информация об этих предметах хранится в таблице под названием 'player_inventory' . Эта таблица имеет следующие поля:
playerid, slotid, uid, стек, использование, долговечность
'uid' - это идентификатор элемента, а 'stack' , 'использует' и 'durable' являются просто значения, которые нужны каждому предмету (например, один и тот же тип предмета в другом слоте может иметь меньшую «долговечность» ).
Проблема в том, что я не могу установить индекс на 'playerid' в таблице инвентаря, потому что на игрока приходится до 24 записей слотов, и ни одно из других полей не гарантированно будет уникальным.
Так что я волнуюсь, когда в этой таблице есть запасы в 10000 игроков, в этой таблице может быть потенциально 240 000 записей без индекса, когда я иду на его запрос - что-то говорит мне, что это может быть очень медленно?
У меня довольно ограниченные знания о том, как оптимизировать мою базу данных, любые советы приветствуются.