"Having recently upgraded my forum software," Kinta wrote, "I noticed that my site had been running incredibly slow."
"Upon further investigation, I found that that the following code was being run once for each and every comment on a page, whenever ever a forum thread was opened.
function ItemCache($bNewConnection = false) { $this->sql = new SqlHelper(dbhost, dbname, dbuser, dbpass, $bNewConnection); $this->connected = $this->sql->connected; $query = "SELECT item_id FROM item_cache"; $returnValue = $this->sql->query($query); if ($returnValue == false) { $query = "ALTER TABLE item_cache ADD `item_id` VARCHAR(100) DEFAULT '0' AFTER `item_name`"; $returnValue = $this->sql->query($query); $query = "ALTER TABLE item_cache ADD `item_lang` VARCHAR(2) DEFAULT '' AFTER `item_id`"; $returnValue2 = $this->sql->query($query); if ($returnValue == false || $returnValue2 == false) { // Create the item cache table. $query = "CREATE TABLE IF NOT EXISTS `item_cache` ( ### snip ### $this->sql->query($query); } } }
"It's fetching data from all rows from the entire item_cache table (currently several thousand), twenty-five times for every page load... just to check if the table exists and has the right columns.
[Advertisement]
BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!