mirror of
https://github.com/shavitush/bhoptimer.git
synced 2025-12-07 10:28:26 +00:00
Major optimizations to database structure.
* in table `playertimes` add `time` to the `map` index - it should look like this: ```sql INDEX `map` (`map`, `style`, `track`, `time`) ``` * in all tables, change all CHAR(x) to VARCHAR(x). the following are the changes: - `chat.auth VARCHAR(32)` - `chat.ccname VARCHAR(128)` - `chat.ccmessage VARCHAR(16)` - `users.auth VARCHAR(32)` - `users.country VARCHAR(32)` - `users.ip VARCHAR(64)` - `maptiers.map VARCHAR(128)` - `playertimes.auth VARCHAR(32)` - `playertimes.map VARCHAR(128)` - `playertimes.date VARCHAR(16)` - `mapzones.map VARCHAR(128)`
This commit is contained in:
parent
1d78ee7bf0
commit
463b8a857b
@ -1336,14 +1336,14 @@ void SQL_DBConnect()
|
|||||||
if(bMySQL)
|
if(bMySQL)
|
||||||
{
|
{
|
||||||
FormatEx(sQuery, 512,
|
FormatEx(sQuery, 512,
|
||||||
"CREATE TABLE IF NOT EXISTS `%schat` (`auth` CHAR(32) NOT NULL, `name` INT NOT NULL DEFAULT 0, `ccname` CHAR(128) COLLATE 'utf8mb4_unicode_ci', `message` INT NOT NULL DEFAULT 0, `ccmessage` CHAR(16) COLLATE 'utf8mb4_unicode_ci', PRIMARY KEY (`auth`), CONSTRAINT `ch_auth` FOREIGN KEY (`auth`) REFERENCES `users` (`auth`) ON UPDATE CASCADE ON DELETE CASCADE) ENGINE=INNODB;",
|
"CREATE TABLE IF NOT EXISTS `%schat` (`auth` VARCHAR(32) NOT NULL, `name` INT NOT NULL DEFAULT 0, `ccname` VARCHAR(128) COLLATE 'utf8mb4_unicode_ci', `message` INT NOT NULL DEFAULT 0, `ccmessage` VARCHAR(16) COLLATE 'utf8mb4_unicode_ci', PRIMARY KEY (`auth`), CONSTRAINT `ch_auth` FOREIGN KEY (`auth`) REFERENCES `users` (`auth`) ON UPDATE CASCADE ON DELETE CASCADE) ENGINE=INNODB;",
|
||||||
gS_MySQLPrefix);
|
gS_MySQLPrefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FormatEx(sQuery, 512,
|
FormatEx(sQuery, 512,
|
||||||
"CREATE TABLE IF NOT EXISTS `%schat` (`auth` CHAR(32) NOT NULL, `name` INT NOT NULL DEFAULT 0, `ccname` CHAR(128), `message` INT NOT NULL DEFAULT 0, `ccmessage` CHAR(16), PRIMARY KEY (`auth`), CONSTRAINT `ch_auth` FOREIGN KEY (`auth`) REFERENCES `users` (`auth`) ON UPDATE CASCADE ON DELETE CASCADE);",
|
"CREATE TABLE IF NOT EXISTS `%schat` (`auth` VARCHAR(32) NOT NULL, `name` INT NOT NULL DEFAULT 0, `ccname` VARCHAR(128), `message` INT NOT NULL DEFAULT 0, `ccmessage` VARCHAR(16), PRIMARY KEY (`auth`), CONSTRAINT `ch_auth` FOREIGN KEY (`auth`) REFERENCES `users` (`auth`) ON UPDATE CASCADE ON DELETE CASCADE);",
|
||||||
gS_MySQLPrefix);
|
gS_MySQLPrefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2123,12 +2123,12 @@ void SQL_DBConnect()
|
|||||||
|
|
||||||
if(gB_MySQL)
|
if(gB_MySQL)
|
||||||
{
|
{
|
||||||
FormatEx(sQuery, 512, "CREATE TABLE IF NOT EXISTS `%susers` (`auth` CHAR(32) NOT NULL, `name` VARCHAR(32) COLLATE 'utf8mb4_general_ci', `country` CHAR(32), `ip` CHAR(64), `lastlogin` INT NOT NULL DEFAULT -1, `points` FLOAT NOT NULL DEFAULT 0, PRIMARY KEY (`auth`), INDEX `points` (`points`)) ENGINE=INNODB;", gS_MySQLPrefix);
|
FormatEx(sQuery, 512, "CREATE TABLE IF NOT EXISTS `%susers` (`auth` VARCHAR(32) NOT NULL, `name` VARCHAR(32) COLLATE 'utf8mb4_general_ci', `country` VARCHAR(32), `ip` VARCHAR(64), `lastlogin` INT NOT NULL DEFAULT -1, `points` FLOAT NOT NULL DEFAULT 0, PRIMARY KEY (`auth`), INDEX `points` (`points`)) ENGINE=INNODB;", gS_MySQLPrefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FormatEx(sQuery, 512, "CREATE TABLE IF NOT EXISTS `%susers` (`auth` CHAR(32) NOT NULL PRIMARY KEY, `name` VARCHAR(32), `country` CHAR(32), `ip` CHAR(64), `lastlogin` INTEGER NOT NULL DEFAULT -1, `points` FLOAT NOT NULL DEFAULT 0);", gS_MySQLPrefix);
|
FormatEx(sQuery, 512, "CREATE TABLE IF NOT EXISTS `%susers` (`auth` VARCHAR(32) NOT NULL PRIMARY KEY, `name` VARCHAR(32), `country` VARCHAR(32), `ip` VARCHAR(64), `lastlogin` INTEGER NOT NULL DEFAULT -1, `points` FLOAT NOT NULL DEFAULT 0);", gS_MySQLPrefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
// CREATE TABLE IF NOT EXISTS
|
// CREATE TABLE IF NOT EXISTS
|
||||||
|
|||||||
@ -277,7 +277,7 @@ void SQL_DBConnect()
|
|||||||
}
|
}
|
||||||
|
|
||||||
char sQuery[256];
|
char sQuery[256];
|
||||||
FormatEx(sQuery, 256, "CREATE TABLE IF NOT EXISTS `%smaptiers` (`map` CHAR(128), `tier` INT NOT NULL DEFAULT 1, PRIMARY KEY (`map`)) ENGINE=INNODB;", gS_MySQLPrefix);
|
FormatEx(sQuery, 256, "CREATE TABLE IF NOT EXISTS `%smaptiers` (`map` VARCHAR(128), `tier` INT NOT NULL DEFAULT 1, PRIMARY KEY (`map`)) ENGINE=INNODB;", gS_MySQLPrefix);
|
||||||
|
|
||||||
gH_SQL.Query(SQL_CreateTable_Callback, sQuery, 0);
|
gH_SQL.Query(SQL_CreateTable_Callback, sQuery, 0);
|
||||||
}
|
}
|
||||||
@ -310,7 +310,7 @@ public void SQL_CreateTable_Callback(Database db, DBResultSet results, const cha
|
|||||||
bool bSuccess = true;
|
bool bSuccess = true;
|
||||||
|
|
||||||
RunLongFastQuery(bSuccess, "CREATE GetWeightedPoints",
|
RunLongFastQuery(bSuccess, "CREATE GetWeightedPoints",
|
||||||
"CREATE FUNCTION GetWeightedPoints(authid CHAR(32)) " ...
|
"CREATE FUNCTION GetWeightedPoints(authid VARCHAR(32)) " ...
|
||||||
"RETURNS FLOAT " ...
|
"RETURNS FLOAT " ...
|
||||||
"READS SQL DATA " ...
|
"READS SQL DATA " ...
|
||||||
"BEGIN " ...
|
"BEGIN " ...
|
||||||
@ -334,7 +334,7 @@ public void SQL_CreateTable_Callback(Database db, DBResultSet results, const cha
|
|||||||
"END;;", gS_MySQLPrefix, gCV_WeightingMultiplier.FloatValue);
|
"END;;", gS_MySQLPrefix, gCV_WeightingMultiplier.FloatValue);
|
||||||
|
|
||||||
RunLongFastQuery(bSuccess, "CREATE GetRecordPoints",
|
RunLongFastQuery(bSuccess, "CREATE GetRecordPoints",
|
||||||
"CREATE FUNCTION GetRecordPoints(rstyle INT, rtrack INT, rtime FLOAT, rmap CHAR(128), pointspertier FLOAT, stylemultiplier FLOAT) " ...
|
"CREATE FUNCTION GetRecordPoints(rstyle INT, rtrack INT, rtime FLOAT, rmap VARCHAR(128), pointspertier FLOAT, stylemultiplier FLOAT) " ...
|
||||||
"RETURNS FLOAT " ...
|
"RETURNS FLOAT " ...
|
||||||
"READS SQL DATA " ...
|
"READS SQL DATA " ...
|
||||||
"BEGIN " ...
|
"BEGIN " ...
|
||||||
|
|||||||
@ -2140,14 +2140,14 @@ void SQL_DBConnect()
|
|||||||
if(gB_MySQL)
|
if(gB_MySQL)
|
||||||
{
|
{
|
||||||
FormatEx(sQuery, 1024,
|
FormatEx(sQuery, 1024,
|
||||||
"CREATE TABLE IF NOT EXISTS `%splayertimes` (`id` INT NOT NULL AUTO_INCREMENT, `auth` CHAR(32), `map` CHAR(128), `time` FLOAT, `jumps` INT, `style` TINYINT, `date` CHAR(16), `strafes` INT, `sync` FLOAT, `points` FLOAT NOT NULL DEFAULT 0, `track` TINYINT NOT NULL DEFAULT 0, `perfs` FLOAT DEFAULT 0, PRIMARY KEY (`id`), INDEX `map` (`map`, `style`, `track`), INDEX `auth` (`auth`, `date`, `points`), INDEX `time` (`time`), CONSTRAINT `pt_auth` FOREIGN KEY (`auth`) REFERENCES `users` (`auth`) ON UPDATE CASCADE ON DELETE CASCADE) ENGINE=INNODB;",
|
"CREATE TABLE IF NOT EXISTS `%splayertimes` (`id` INT NOT NULL AUTO_INCREMENT, `auth` VARCHAR(32), `map` VARCHAR(128), `time` FLOAT, `jumps` INT, `style` TINYINT, `date` VARCHAR(16), `strafes` INT, `sync` FLOAT, `points` FLOAT NOT NULL DEFAULT 0, `track` TINYINT NOT NULL DEFAULT 0, `perfs` FLOAT DEFAULT 0, PRIMARY KEY (`id`), INDEX `map` (`map`, `style`, `track`, `time`), INDEX `auth` (`auth`, `date`, `points`), INDEX `time` (`time`), CONSTRAINT `pt_auth` FOREIGN KEY (`auth`) REFERENCES `users` (`auth`) ON UPDATE CASCADE ON DELETE CASCADE) ENGINE=INNODB;",
|
||||||
gS_MySQLPrefix);
|
gS_MySQLPrefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FormatEx(sQuery, 1024,
|
FormatEx(sQuery, 1024,
|
||||||
"CREATE TABLE IF NOT EXISTS `%splayertimes` (`id` INTEGER PRIMARY KEY, `auth` CHAR(32), `map` CHAR(128), `time` FLOAT, `jumps` INT, `style` TINYINT, `date` CHAR(16), `strafes` INT, `sync` FLOAT, `points` FLOAT NOT NULL DEFAULT 0, `track` TINYINT NOT NULL DEFAULT 0, `perfs` FLOAT DEFAULT 0);",
|
"CREATE TABLE IF NOT EXISTS `%splayertimes` (`id` INTEGER PRIMARY KEY, `auth` VARCHAR(32), `map` VARCHAR(128), `time` FLOAT, `jumps` INT, `style` TINYINT, `date` VARCHAR(16), `strafes` INT, `sync` FLOAT, `points` FLOAT NOT NULL DEFAULT 0, `track` TINYINT NOT NULL DEFAULT 0, `perfs` FLOAT DEFAULT 0);",
|
||||||
gS_MySQLPrefix);
|
gS_MySQLPrefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2179,7 +2179,7 @@ public void SQL_CreateTable_Callback(Database db, DBResultSet results, const cha
|
|||||||
|
|
||||||
if(gB_MySQL) // this isn't possible in sqlite
|
if(gB_MySQL) // this isn't possible in sqlite
|
||||||
{
|
{
|
||||||
FormatEx(sQuery, 64, "ALTER TABLE %splayertimes MODIFY date CHAR(16);", gS_MySQLPrefix);
|
FormatEx(sQuery, 64, "ALTER TABLE %splayertimes MODIFY date VARCHAR(16);", gS_MySQLPrefix);
|
||||||
gH_SQL.Query(SQL_AlterTable2_Callback, sQuery);
|
gH_SQL.Query(SQL_AlterTable2_Callback, sQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2312,7 +2312,7 @@ void SQL_DBConnect()
|
|||||||
gB_MySQL = StrEqual(sDriver, "mysql", false);
|
gB_MySQL = StrEqual(sDriver, "mysql", false);
|
||||||
|
|
||||||
char sQuery[1024];
|
char sQuery[1024];
|
||||||
FormatEx(sQuery, 1024, "CREATE TABLE IF NOT EXISTS `%smapzones` (`id` INT AUTO_INCREMENT, `map` CHAR(128), `type` INT, `corner1_x` FLOAT, `corner1_y` FLOAT, `corner1_z` FLOAT, `corner2_x` FLOAT, `corner2_y` FLOAT, `corner2_z` FLOAT, `destination_x` FLOAT NOT NULL DEFAULT 0, `destination_y` FLOAT NOT NULL DEFAULT 0, `destination_z` FLOAT NOT NULL DEFAULT 0, `track` INT NOT NULL DEFAULT 0, PRIMARY KEY (`id`))%s;", gS_MySQLPrefix, (gB_MySQL)? " ENGINE=INNODB":"");
|
FormatEx(sQuery, 1024, "CREATE TABLE IF NOT EXISTS `%smapzones` (`id` INT AUTO_INCREMENT, `map` VARCHAR(128), `type` INT, `corner1_x` FLOAT, `corner1_y` FLOAT, `corner1_z` FLOAT, `corner2_x` FLOAT, `corner2_y` FLOAT, `corner2_z` FLOAT, `destination_x` FLOAT NOT NULL DEFAULT 0, `destination_y` FLOAT NOT NULL DEFAULT 0, `destination_z` FLOAT NOT NULL DEFAULT 0, `track` INT NOT NULL DEFAULT 0, PRIMARY KEY (`id`))%s;", gS_MySQLPrefix, (gB_MySQL)? " ENGINE=INNODB":"");
|
||||||
|
|
||||||
gH_SQL.Query(SQL_CreateTable_Callback, sQuery);
|
gH_SQL.Query(SQL_CreateTable_Callback, sQuery);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user