Skip to content

Commit

Permalink
[8402] Optimalized guild_eventlog and guild_bank_eventlog loading fro…
Browse files Browse the repository at this point in the history
…m database.

Added config options to set count of eventlog records stored in DB.
Attached SQL files will DROP existing and create new tables. Make sure you create backup (if you need old data).
Renamed few variables in Guild class.
Signed-off-by: Triply <triply@getmangos.com>
  • Loading branch information
triply committed Aug 21, 2009
1 parent 43ec4ef commit 8f023ab
Show file tree
Hide file tree
Showing 15 changed files with 464 additions and 369 deletions.
21 changes: 11 additions & 10 deletions sql/characters.sql
Expand Up @@ -21,7 +21,7 @@

DROP TABLE IF EXISTS `character_db_version`;
CREATE TABLE `character_db_version` (
`required_8397_03_characters_character_spell` bit(1) default NULL
`required_8402_02_characters_guild_bank_eventlog` bit(1) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Last applied sql update to DB';

--
Expand Down Expand Up @@ -935,16 +935,16 @@ UNLOCK TABLES;

DROP TABLE IF EXISTS `guild_bank_eventlog`;
CREATE TABLE `guild_bank_eventlog` (
`guildid` int(11) unsigned NOT NULL default '0',
`LogGuid` int(11) unsigned NOT NULL default '0',
`LogEntry` tinyint(1) unsigned NOT NULL default '0',
`TabId` tinyint(1) unsigned NOT NULL default '0',
`guildid` int(11) unsigned NOT NULL default '0' COMMENT 'Guild Identificator',
`LogGuid` int(11) unsigned NOT NULL default '0' COMMENT 'Log record identificator - auxiliary column',
`TabId` tinyint(3) unsigned NOT NULL default '0' COMMENT 'Guild bank TabId',
`EventType` tinyint(3) unsigned NOT NULL default '0' COMMENT 'Event type',
`PlayerGuid` int(11) unsigned NOT NULL default '0',
`ItemOrMoney` int(11) unsigned NOT NULL default '0',
`ItemStackCount` tinyint(3) unsigned NOT NULL default '0',
`DestTabId` tinyint(1) unsigned NOT NULL default '0',
`TimeStamp` bigint(20) unsigned NOT NULL default '0',
PRIMARY KEY (`guildid`,`LogGuid`),
`DestTabId` tinyint(1) unsigned NOT NULL default '0' COMMENT 'Destination Tab Id',
`TimeStamp` bigint(20) unsigned NOT NULL default '0' COMMENT 'Event UNIX time',
PRIMARY KEY (`guildid`,`LogGuid`,`TabId`),
KEY `guildid_key` (`guildid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Expand Down Expand Up @@ -1036,12 +1036,13 @@ UNLOCK TABLES;
DROP TABLE IF EXISTS `guild_eventlog`;
CREATE TABLE `guild_eventlog` (
`guildid` int(11) NOT NULL COMMENT 'Guild Identificator',
`LogGuid` int(11) NOT NULL COMMENT 'Log entry identificator',
`LogGuid` int(11) NOT NULL COMMENT 'Log record identificator - auxiliary column',
`EventType` tinyint(1) NOT NULL COMMENT 'Event type',
`PlayerGuid1` int(11) NOT NULL COMMENT 'Player 1',
`PlayerGuid2` int(11) NOT NULL COMMENT 'Player 2',
`NewRank` tinyint(2) NOT NULL COMMENT 'New rank(in case promotion/demotion)',
`TimeStamp` bigint(20) NOT NULL COMMENT 'Event UNIX time'
`TimeStamp` bigint(20) NOT NULL COMMENT 'Event UNIX time',
PRIMARY KEY (`guildid`, `LogGuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT 'Guild Eventlog';

--
Expand Down
20 changes: 20 additions & 0 deletions sql/updates/8402_01_characters_guild_eventlog.sql
@@ -0,0 +1,20 @@
ALTER TABLE character_db_version CHANGE COLUMN required_8397_03_characters_character_spell required_8402_01_characters_guild_eventlog bit;


-- THIS SCRIPT DELETES table `guild_eventlog` - MAKE BACKUP, if you need it.

DROP TABLE IF EXISTS `guild_eventlog`;
CREATE TABLE `guild_eventlog` (
`guildid` int(11) NOT NULL COMMENT 'Guild Identificator',
`LogGuid` int(11) NOT NULL COMMENT 'Log record identificator - auxiliary column',
`EventType` tinyint(1) NOT NULL COMMENT 'Event type',
`PlayerGuid1` int(11) NOT NULL COMMENT 'Player 1',
`PlayerGuid2` int(11) NOT NULL COMMENT 'Player 2',
`NewRank` tinyint(2) NOT NULL COMMENT 'New rank(in case promotion/demotion)',
`TimeStamp` bigint(20) NOT NULL COMMENT 'Event UNIX time',
PRIMARY KEY (`guildid`, `LogGuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT 'Guild Eventlog';

-- The reason i decided for such dramatic change is that old guild_eventlog table didn't have Primary key and
-- used LogGuids from 0 to infinity
-- New system uses LogGuids from 0 to number defined in config.
23 changes: 23 additions & 0 deletions sql/updates/8402_02_characters_guild_bank_eventlog.sql
@@ -0,0 +1,23 @@
ALTER TABLE character_db_version CHANGE COLUMN required_8402_01_characters_guild_eventlog required_8402_02_characters_guild_bank_eventlog bit;


-- THIS SCRIPT DELETES table `guild_bank_eventlog` - MAKE BACKUP, if you need it.

DROP TABLE IF EXISTS `guild_bank_eventlog`;
CREATE TABLE `guild_bank_eventlog` (
`guildid` int(11) unsigned NOT NULL default '0' COMMENT 'Guild Identificator',
`LogGuid` int(11) unsigned NOT NULL default '0' COMMENT 'Log record identificator - auxiliary column',
`TabId` tinyint(3) unsigned NOT NULL default '0' COMMENT 'Guild bank TabId',
`EventType` tinyint(3) unsigned NOT NULL default '0' COMMENT 'Event type',
`PlayerGuid` int(11) unsigned NOT NULL default '0',
`ItemOrMoney` int(11) unsigned NOT NULL default '0',
`ItemStackCount` tinyint(3) unsigned NOT NULL default '0',
`DestTabId` tinyint(1) unsigned NOT NULL default '0' COMMENT 'Destination Tab Id',
`TimeStamp` bigint(20) unsigned NOT NULL default '0' COMMENT 'Event UNIX time',
PRIMARY KEY (`guildid`,`LogGuid`,`TabId`),
KEY `guildid_key` (`guildid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- The reason i decided for such dramatic change is that old guild_bank_eventlog table used `TabId` = 0 for Money events and
-- used `LogGuid` from 0 to infinity
-- New system uses `LogGuid` from 0 to number defined in config.
4 changes: 4 additions & 0 deletions sql/updates/Makefile.am
Expand Up @@ -90,6 +90,8 @@ pkgdata_DATA = \
8397_02_mangos_spell_threat.sql \
8397_03_characters_character_spell.sql \
8399_01_mangos_spell_elixir.sql \
8402_01_characters_guild_eventlog.sql \
8402_02_characters_guild_bank_eventlog.sql \
README

## Additional files to include when running 'make dist'
Expand Down Expand Up @@ -160,4 +162,6 @@ EXTRA_DIST = \
8397_02_mangos_spell_threat.sql \
8397_03_characters_character_spell.sql \
8399_01_mangos_spell_elixir.sql \
8402_01_characters_guild_eventlog.sql \
8402_02_characters_guild_bank_eventlog.sql \
README

0 comments on commit 8f023ab

Please sign in to comment.