Skip to content

Commit

Permalink
[9611] Add index for some tables in characters DB.
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexDereka committed Mar 21, 2010
1 parent c8914b6 commit b951e50
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 14 deletions.
31 changes: 22 additions & 9 deletions sql/characters.sql
Expand Up @@ -21,7 +21,7 @@

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

--
Expand Down Expand Up @@ -466,7 +466,8 @@ CREATE TABLE `character_equipmentsets` (
`item17` int(11) NOT NULL default '0',
`item18` int(11) NOT NULL default '0',
PRIMARY KEY (`setguid`),
UNIQUE KEY `idx_set` (`guid`,`setguid`,`setindex`)
UNIQUE KEY `idx_set` (`guid`,`setguid`,`setindex`),
INDEX `Idx_setindex` (`setindex`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
Expand Down Expand Up @@ -898,7 +899,9 @@ CREATE TABLE `corpse` (
`instance` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`guid`),
KEY `idx_type` (`corpse_type`),
KEY `instance` (`instance`)
KEY `instance` (`instance`),
INDEX `Idx_player`(`player`),
INDEX `Idx_time`(`time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Death System';

--
Expand Down Expand Up @@ -978,7 +981,8 @@ CREATE TABLE `group_member` (
`memberGuid` int(11) unsigned NOT NULL,
`assistant` tinyint(1) unsigned NOT NULL,
`subgroup` smallint(6) unsigned NOT NULL,
PRIMARY KEY (`groupId`,`memberGuid`)
PRIMARY KEY (`groupId`,`memberGuid`),
INDEX `Idx_memberGuid`(`memberGuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Groups';

--
Expand Down Expand Up @@ -1036,7 +1040,9 @@ CREATE TABLE `guild_bank_eventlog` (
`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`)
KEY `guildid_key` (`guildid`),
INDEX `Idx_PlayerGuid`(`PlayerGuid`),
INDEX `Idx_LogGuid`(`LogGuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
Expand All @@ -1060,7 +1066,8 @@ CREATE TABLE `guild_bank_item` (
`item_guid` int(11) unsigned NOT NULL default '0',
`item_entry` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`guildid`,`tabid`,`slotid`),
KEY `guildid_key` (`guildid`)
KEY `guildid_key` (`guildid`),
INDEX `Idx_item_guid`(`item_guid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
Expand Down Expand Up @@ -1133,7 +1140,10 @@ CREATE TABLE `guild_eventlog` (
`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`)
PRIMARY KEY (`guildid`, `LogGuid`),
INDEX `Idx_PlayerGuid1`(`PlayerGuid1`),
INDEX `Idx_PlayerGuid2`(`PlayerGuid2`),
INDEX `Idx_LogGuid`(`LogGuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT 'Guild Eventlog';

--
Expand Down Expand Up @@ -1195,7 +1205,8 @@ CREATE TABLE `guild_rank` (
`rname` varchar(255) NOT NULL default '',
`rights` int(3) unsigned NOT NULL default '0',
`BankMoneyPerDay` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`guildid`,`rid`)
PRIMARY KEY (`guildid`,`rid`),
INDEX `Idx_rid`(`rid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Guild System';

--
Expand Down Expand Up @@ -1453,7 +1464,9 @@ CREATE TABLE `petition_sign` (
`playerguid` int(11) unsigned NOT NULL default '0',
`player_account` int(11) unsigned NOT NULL default '0',
`type` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`petitionguid`,`playerguid`)
PRIMARY KEY (`petitionguid`,`playerguid`),
INDEX `Idx_playerguid`(`playerguid`),
INDEX `Idx_ownerguid`(`ownerguid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Guild System';

--
Expand Down
15 changes: 15 additions & 0 deletions sql/updates/9611_01_characters.sql
@@ -0,0 +1,15 @@
ALTER TABLE character_db_version CHANGE COLUMN required_9375_01_characters_character_glyphs required_9611_01_characters bit;

ALTER TABLE `group_member` ADD INDEX `Idx_memberGuid`(`memberGuid`);
ALTER TABLE `guild_eventlog` ADD INDEX `Idx_PlayerGuid1`(`PlayerGuid1`);
ALTER TABLE `guild_eventlog` ADD INDEX `Idx_PlayerGuid2`(`PlayerGuid2`);
ALTER TABLE `guild_bank_eventlog` ADD INDEX `Idx_PlayerGuid`(`PlayerGuid`);
ALTER TABLE `petition_sign` ADD INDEX `Idx_playerguid`(`playerguid`);
ALTER TABLE `petition_sign` ADD INDEX `Idx_ownerguid`(`ownerguid`);
ALTER TABLE `guild_eventlog` ADD INDEX `Idx_LogGuid`(`LogGuid`);
ALTER TABLE `guild_bank_eventlog` ADD INDEX `Idx_LogGuid`(`LogGuid`);
ALTER TABLE `guild_bank_item` ADD INDEX `Idx_item_guid`(`item_guid`);
ALTER TABLE `corpse` ADD INDEX `Idx_player`(`player`);
ALTER TABLE `corpse` ADD INDEX `Idx_time`(`time`);
ALTER TABLE `guild_rank` ADD INDEX `Idx_rid`(`rid`);
ALTER TABLE `character_equipmentsets` ADD INDEX `Idx_setindex` (`setindex`);
2 changes: 2 additions & 0 deletions sql/updates/Makefile.am
Expand Up @@ -89,6 +89,7 @@ pkgdata_DATA = \
9539_01_mangos_spell_bonus_data.sql \
9589_01_mangos_creature_template.sql \
9590_01_mangos_db_script_string.sql \
9611_01_characters.sql \
README

## Additional files to include when running 'make dist'
Expand Down Expand Up @@ -158,4 +159,5 @@ EXTRA_DIST = \
9539_01_mangos_spell_bonus_data.sql \
9589_01_mangos_creature_template.sql \
9590_01_mangos_db_script_string.sql \
9611_01_characters.sql \
README
2 changes: 1 addition & 1 deletion src/game/GlobalEvents.cpp
Expand Up @@ -75,7 +75,7 @@ static void CorpsesErase(bool bones,uint32 delay)
{
///- Get the list of eligible corpses/bones to be removed
//No SQL injection (uint32 and enum)
CharacterDatabase.AsyncPQuery(&CorpsesEraseCallBack, bones, "SELECT guid,position_x,position_y,map,player FROM corpse WHERE UNIX_TIMESTAMP()-time > '%u' AND corpse_type %s '0'", delay, (bones ? "=" : "<>"));
CharacterDatabase.AsyncPQuery(&CorpsesEraseCallBack, bones, "SELECT guid,position_x,position_y,map,player FROM corpse WHERE time < (UNIX_TIMESTAMP()+'%u') AND corpse_type %s '0'", delay, (bones ? "=" : "<>"));
}

/// not thread guarded variant for call from other thread
Expand Down
3 changes: 1 addition & 2 deletions src/game/Player.cpp
Expand Up @@ -4114,8 +4114,7 @@ void Player::DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmC
CharacterDatabase.PExecute("DELETE FROM character_achievement WHERE guid = '%u'",guid);
CharacterDatabase.PExecute("DELETE FROM character_achievement_progress WHERE guid = '%u'",guid);
CharacterDatabase.PExecute("DELETE FROM character_equipmentsets WHERE guid = '%u'",guid);
CharacterDatabase.PExecute("DELETE FROM guild_eventlog WHERE PlayerGuid1 = '%u'",guid);
CharacterDatabase.PExecute("DELETE FROM guild_eventlog WHERE PlayerGuid2 = '%u'",guid);
CharacterDatabase.PExecute("DELETE FROM guild_eventlog WHERE PlayerGuid1 = '%u' OR PlayerGuid2 = '%u'",guid, guid);
CharacterDatabase.PExecute("DELETE FROM guild_bank_eventlog WHERE PlayerGuid = '%u'",guid);
CharacterDatabase.CommitTransaction();

Expand Down
2 changes: 1 addition & 1 deletion src/shared/revision_nr.h
@@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "9610"
#define REVISION_NR "9611"
#endif // __REVISION_NR_H__
2 changes: 1 addition & 1 deletion src/shared/revision_sql.h
@@ -1,6 +1,6 @@
#ifndef __REVISION_SQL_H__
#define __REVISION_SQL_H__
#define REVISION_DB_CHARACTERS "required_9375_01_characters_character_glyphs"
#define REVISION_DB_CHARACTERS "required_9611_01_characters"
#define REVISION_DB_MANGOS "required_9590_01_mangos_db_script_string"
#define REVISION_DB_REALMD "required_9010_01_realmd_realmlist"
#endif // __REVISION_SQL_H__

0 comments on commit b951e50

Please sign in to comment.