1. Каждое открытие инвентаря это запрос к БД (т.е. при стоянии на месте и щелкая кнопку, мы будем нагружать БД запросами)?
Нет. Данные загружаются в оперативку при логине персонажа. Изменения также касаются оперативки. В базу скидывается при логауте. Ну еще периодически для синхронизации.
2. Каждое выпадение золота в мир это новая запись в общую таблицу мира, что в такой-то точке есть объект "золото"?
Да. есть объект "предмет". Есть структура "список предметов", скорее всего двухсторонний список. Он обновляется, в него добавляется, из него извлекается. Предметы в мире не записываются в базу вообще (если вы помните, при ребуте все что не в чьем-то инвентаре, пропадает. Не так уж много оперативки это занимает. Просто посчитайте.
Максимальный онлайн на шарде - 5000 игроков.
Объект - ну учитывая тип предмета, уникальный айди, разные параметры типа заточки, владельца, место, и так далее - 10-20 байт более чем достаточно. Ну давайте 50 байт возьмем, хотя на деле я уже не помню сколько там было, явно меньше.
50 байт * 5000 игроков и скажем 100 предметом у каждого - получим примерно 23 мегабайта.
Добавить клановые хроанилища. ну 30 мегабайт. Много это оперативки на сегодня? По-моему вообще разговор ни о чем.
3. Что происходит после того, когда золото было поднято, эта запись превращается в null?
Объект удаляется из списка.
4. При интенсивном обороте этих действий, как реализуется такая таблица, чтобы она не переполнялась за неделю?
Нет никаких проблем с тем, чтобы удалить объект и освободить память.
Для оптимизации, можно делать так, что объекты не удаляются из памяти, а "очищаются", то есть структура в памяти остается, просто ее удаляют из основного списка и добавляют в список "нулл объектов". Если их там слишком много, удаляют из памяти, при этом отдельно есть счетчик количества объектов, и если надо создать новый объект, то вместо выделения памяти просто берется уже готовая структура из соседнего списка, заполняется.
5. Для игр подходит любая БД (например Postgres) или есть определенный тип игровых БД?
Любая. В Lineage2 использовался MSSQL, в самописном народном java эмуляторе использовался mysql