mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-06-28 00:24:23 +00:00
refactor: more SQL optimizations and regexes
This commit is contained in:
+1
-9
@@ -10,15 +10,7 @@
|
||||
#################################################################################
|
||||
|
||||
|
||||
$txt="dobrá modrá nedotknutá mliečna krava s rosnatými rohmi a bacuľatými kostičkami
|
||||
|
||||
καλή γαλάζια παρθένα γαλακτοπαραγωγική αγελάδα με καυτά κέρατα και κούτσουρα
|
||||
|
||||
azgın boynuzları ve tombul chubs ile iyi mavi temiz kuru süt ineği
|
||||
|
||||
хороша синя незаймана молочна корова з роговими рогами і пухкими чуваками
|
||||
|
||||
良好的藍色原始乳白色牛與角角和胖胖的小孩";
|
||||
$txt="sdsad";
|
||||
|
||||
//bbcode = html code
|
||||
$txt = preg_replace("/\[b\]/is",'<b>', $txt);
|
||||
|
||||
@@ -1648,7 +1648,8 @@ CREATE TABLE IF NOT EXISTS `%PREFIX%wdata` (
|
||||
`occupied` tinyint(1) NULL,
|
||||
`image` varchar(3) NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `occupied` (`occupied`)
|
||||
KEY `occupied` (`occupied`),
|
||||
KEY `fieldtype` (`fieldtype`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
|
||||
|
||||
--
|
||||
|
||||
@@ -6,6 +6,7 @@ ALTER TABLE `s1_fdata` ADD INDEX(`f99t`);
|
||||
ALTER TABLE `s1_diplomacy` ADD INDEX(`alli1`);
|
||||
ALTER TABLE `s1_diplomacy` ADD INDEX(`alli2`);
|
||||
ALTER TABLE `s1_diplomacy` ADD INDEX `type-accepted` (`type`, `accepted`);
|
||||
ALTER TABLE `s1_wdata` ADD INDEX(`fieldtype`);
|
||||
|
||||
|
||||
-- 22.10.2017 -> SQL optimizations
|
||||
|
||||
+11
-6
@@ -8,12 +8,12 @@
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Init DB[ \t]+travian\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SET NAMES \'UTF8\'\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT Count\(\*\) as Total FROM s1_users WHERE timestamp > \d{0,100} AND tribe!=\d{1,2} AND tribe!=\d{1,2} AND tribe!=\d{1,2}\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_users WHERE access< 8 AND id > \d{1,5} AND tribe<=3 AND tribe > 0 ORDER BY oldrank ASC Limit 1\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_users WHERE access<( )?8 AND id > \d{1,1000} AND tribe<=3 AND tribe > 0 ORDER BY (oldrank|ap|dp|clp|RR) (ASC|DESC)(, id DESC)? Limit 1(0)?\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Quit[ \t]+\n?/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT username FROM s1_users where username = \'[^\']+\' LIMIT 1\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT id,password,sessid,is_bcrypt FROM s1_users where username = \'[^\']+\'\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT (act|vac_mode|quest) FROM s1_users where username = \'[^\']+\'\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_users where username = \'[^\']+\'\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_users where (username = \'[^\']+\'|tribe = \d{0,100})\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+UPDATE s1_users SET vac_mode = \'\d{0,100}\' , vac_time=\'\d{0,100}\' WHERE id=\d{0,100}\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+INSERT IGNORE INTO s1_online \(name, uid, time, sit\) VALUES \(\'[^\']+\', \d{0,100}, \'\d{0,100}\', \d{0,100}\)\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT id, village_select FROM `s1_users` WHERE `username`=\'[^\']+\'\n/',
|
||||
@@ -41,7 +41,7 @@
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_mdata where target IN\([^)]+\) and send = 0 and archived = 1 and deltarget = 0\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_ndata where uid = \d{0,100} ORDER BY time DESC\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_ndata where uid = \d{0,100} and del = 0 ORDER BY time DESC\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT (\*|evasion) FROM s1_vdata where wref = (\'?)\d{0,100}(\')?\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT (\*|evasion|name) FROM s1_vdata where wref = (\'?)\d{0,100}(\')?\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT (\*|f\d{0,100}t) from s1_fdata where vref = \d{0,100}( LIMIT 1)?\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT x,y FROM s1_wdata where id = \d{0,100}\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT id, fieldtype FROM s1_wdata where id = \d{0,100}\n/',
|
||||
@@ -52,7 +52,7 @@
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT e.\*,o.conqured FROM s1_enforcement as e LEFT JOIN s1_odata as o ON e.vref=o.wref where o.conqured = \d{0,100} AND e.from !=\d{0,100}\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT e.\*,o.conqured FROM s1_enforcement as e LEFT JOIN s1_odata as o ON e.vref=o.wref where o.conqured = \d{0,100}\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_prisoners where (s1_prisoners.)?(`)?from(`)? = \d{0,100}\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT (tribe|plus|gold|alliance|b4|id|maxevasion) FROM s1_users where (id = \d{0,100}|username = \'[^\']+\')\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT (tribe|plus|gold|alliance|b4|id|maxevasion|username|\*) FROM s1_users where (id = (\')?\d{0,100}(\')?|username = \'[^\']+\'|tribe = \d{0,100})( ORDER BY (ap|dp|clp|RR) DESC(, id DESC)? Limit 1)?\n/i',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_movement where s1_movement.from = \'\d{0,100}\' and sort_type = 5 and proc = 0 ORDER BY endtime ASC\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* from s1_tdata where vref = \d{0,100}\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_abdata where vref = \d{0,100}\n/',
|
||||
@@ -68,7 +68,7 @@
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+UPDATE s1_vdata set lastupdate = \d{0,100} where wref = \d{0,100}\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_bdata where wid = \d{0,100} order by master,timestamp ASC\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT count\(id\) FROM s1_users where id > 5\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT s1_users.id userid, s1_users.username username, s1_users.oldrank oldrank, s1_users.alliance alliance, \(\n[^A-Za-z]+SELECT SUM\( s1_vdata.pop \)\n[^A-Za-z]+FROM s1_vdata\n[^A-Za-z]+WHERE s1_vdata.owner = userid\n[^A-Za-z]+\)totalpop, \(\n[^A-Za-z]+SELECT COUNT\( s1_vdata.wref \)\n[^A-Za-z]+FROM s1_vdata\n[^A-Za-z]+WHERE s1_vdata.owner = userid AND type != 99\n[^A-Za-z]+\)totalvillages, \(\n[^A-Za-z]+SELECT s1_alidata.tag\n[^A-Za-z]+FROM s1_alidata, s1_users\n[^A-Za-z]+WHERE s1_alidata.id = s1_users.alliance\n[^A-Za-z]+AND s1_users.id = userid\n[^A-Za-z]+\)allitag\n[^A-Za-z]+FROM s1_users\n[^A-Za-z]+WHERE s1_users.access < 8\n[^A-Za-z]+AND s1_users.tribe <= 5\n[^A-Za-z]+AND s1_users.id > 5\n[^A-Za-z]+ORDER BY totalpop DESC, totalvillages DESC, userid DESC\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT s1_users.id userid,( s1_users.tribe tribe,)? s1_users.username username(, s1_users.oldrank oldrank)?,( )?s1_users.alliance alliance, \(\n[^A-Za-z]+SELECT SUM\( s1_vdata.pop \)\n[^A-Za-z]+FROM s1_vdata\n[^A-Za-z]+WHERE s1_vdata.owner = userid\n[^A-Za-z]+\)totalpop, \(\n[^A-Za-z]+SELECT COUNT\( s1_vdata.wref \)\n[^A-Za-z]+FROM s1_vdata\n[^A-Za-z]+WHERE s1_vdata.owner = userid AND type != 99\n[^A-Za-z]+\)totalvillages, \(\n[^A-Za-z]+SELECT s1_alidata.tag\n[^A-Za-z]+FROM s1_alidata, s1_users\n[^A-Za-z]+WHERE s1_alidata.id = s1_users.alliance\n[^A-Za-z]+AND s1_users.id = userid\n[^A-Za-z]+\)allitag\n[^A-Za-z]+FROM s1_users\n[^A-Za-z]+WHERE( s1_users.access < 8\n[^A-Za-z]+ AND)? s1_users.tribe (<=|=) \d{0,100}( AND s1_users.access < \d{0,100})?\n[^A-Za-z]+AND s1_users.id > 5\n[^A-Za-z]+ORDER BY totalpop DESC, totalvillages DESC, userid DESC\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_medal order by week DESC LIMIT 0, 1\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_users where oldrank = 0 and id > 5\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+DELETE FROM s1_active WHERE timestamp < \d{0,100}\n/',
|
||||
@@ -84,7 +84,7 @@
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT sum\(cp\) FROM s1_vdata where owner = \d{0,100} and natar = 0\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+UPDATE s1_users set cp = cp \+ \d{0,100}(\.\d{0,100})?, lastupdate = \d{0,100} where id = \'\d{0,100}\'\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_hero( WHERE uid = \d{0,100})?\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_hero WHERE (`)?dead(`)?=(\')?0(\')? AND (uid|`heroid`)=\d{0,100}( LIMIT 1)?\n/i',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_hero WHERE (`)?dead(`)?( )?=( )?(\')?\d{0,100}(\')?( AND (uid|`heroid`)=\d{0,100}( LIMIT 1)?)?\n/i',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+UPDATE `s1_hero` SET health = \'\d{0,100}\' WHERE heroid = \d{0,100}\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+UPDATE `s1_hero` SET lastupdate = \'\d{0,100}\' WHERE heroid = \d{0,100}\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+UPDATE `s1_hero` SET health = \'\d{0,100}(\.\d{0,100})?\' WHERE heroid = \d{0,100}\n/',
|
||||
@@ -181,6 +181,11 @@
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT\n[^A-Za-z]+s1_wdata.id AS map_id,\n[^A-Za-z]+s1_wdata.fieldtype AS map_fieldtype,\n[^A-Za-z]+s1_wdata.oasistype AS map_oasis,\n[^A-Za-z]+s1_wdata.x AS map_x,\n[^A-Za-z]+s1_wdata.y AS map_y,\n[^A-Za-z]+s1_wdata.occupied AS map_occupied,\n[^A-Za-z]+s1_wdata.image AS map_image,\n\n[^A-Za-z]+s1_odata.conqured AS oasis_conqured,\n[^A-Za-z]+info_user_oasis.username AS oasis_user,\n[^A-Za-z]+info_user_oasis.tribe AS oasis_tribe,\n[^A-Za-z]+info_alliance_oasis.tag AS oasis_alli_name,\n\n[^A-Za-z]+s1_vdata.wref AS ville_id,\n[^A-Za-z]+s1_vdata.owner AS ville_user,\n[^A-Za-z]+s1_vdata.name AS ville_name,\n[^A-Za-z]+s1_vdata.capital AS ville_capital,\n[^A-Za-z]+s1_vdata.pop AS ville_pop,\n\n[^A-Za-z]+s1_users.id AS user_id,\n[^A-Za-z]+s1_users.username AS user_username,\n[^A-Za-z]+s1_users.tribe AS user_tribe,\n[^A-Za-z]+s1_users.alliance AS user_alliance,\n\n[^A-Za-z]+s1_alidata.id AS aliance_id,\n[^A-Za-z]+s1_alidata.tag AS aliance_name\n\n[^A-Za-z]+FROM \(\(\(\(\(\(s1_wdata\n[^A-Za-z]+LEFT JOIN s1_vdata ON s1_vdata.wref = s1_wdata.id \)\n[^A-Za-z]+LEFT JOIN s1_odata ON s1_odata.wref = s1_wdata.id \)\n[^A-Za-z]+LEFT JOIN s1_users AS info_user_oasis ON info_user_oasis.id = s1_odata.owner \)\n[^A-Za-z]+LEFT JOIN s1_alidata AS info_alliance_oasis ON info_alliance_oasis.id = info_user_oasis.alliance \)\n[^A-Za-z]+LEFT JOIN s1_users ON s1_users.id = s1_vdata.owner \)\n[^A-Za-z]+LEFT JOIN s1_alidata ON s1_alidata.id = s1_users.alliance \)\n[^A-Za-z]+where s1_wdata.id IN \([^)]+\)\n[^A-Za-z]+ORDER BY FIND_IN_SET\(s1_wdata.id,\'[^\']+\'\)\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_diplomacy WHERE \(alli1 = \'[^\']*\' or alli2 = \'[^\']*\'\) AND \(type = \'\d{0,100}\' AND accepted = \'\d{0,100}\'\)\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_diplomacy WHERE alli1 = \'[^\']*\' AND type = \'\d{0,100}\' OR alli2 = \'[^\']*\' AND type = \'\d{0,100}\' AND accepted = \'\d{0,100}\'\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+UPDATE s1_general SET shown = \d{0,100} WHERE id = \d{0,100}\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT id,x,y,occupied(,fieldtype)? FROM s1_wdata WHERE fieldtype = \d{0,100}( OR fieldtype = \d{0,100})?\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT s1_users.id userid, s1_users.username username, s1_users.(a|d)pall, \(\n\n[^A-Za-z]+SELECT COUNT\( s1_vdata.wref \)\n[^A-Za-z]+FROM s1_vdata\n[^A-Za-z]+WHERE s1_vdata.owner = userid AND type != \d{0,100}\n[^A-Za-z]+\)totalvillages, \(\n\n[^A-Za-z]+SELECT SUM\( s1_vdata.pop \)\n[^A-Za-z]+FROM s1_vdata\n[^A-Za-z]+WHERE s1_vdata.owner = userid\n[^A-Za-z]+\)pop\n[^A-Za-z]+FROM s1_users\n[^A-Za-z]+WHERE s1_users.(a|d)pall >=0 AND s1_users.access < 8 AND s1_users.tribe <= 3\n[^A-Za-z]+AND s1_users.id > 5\n[^A-Za-z]+ORDER BY s1_users.(a|d)pall DESC, pop DESC, userid DESC\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT v.wref,v.name,v.owner,v.pop FROM s1_vdata AS v,s1_users AS u WHERE v.owner=u.id AND u.tribe<=3 AND v.wref != \'[^\']*\' AND u.access<8\n/',
|
||||
'/(\d{0,100} \d{1,2}:\d{1,2}:\d{1,2})?[ \t]+\d{1,100}[ \t]+Query[ \t]+SELECT \* FROM s1_users WHERE tribe!=0 AND tribe!=4 AND tribe!=5\n/',
|
||||
];
|
||||
|
||||
echo preg_replace($regexes, '', $src);
|
||||
|
||||
+47487
-778
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user