Jump to content

Need Help Reducing Page Load Time.. Ideas / Optimization


Recommended Posts

Hi Guys and Gals,

 

I run a simple fansite for some of my fellow MTG Tactics players at www.onlinegamekey.com

 

I recently made a Booster Page value page here: http://www.onlinegamekey.com/booster-packs.php

 

And it seems the page loads really slow, but I kind of understand that since its doing a lot of math and dealing with a lot of data.

 

I am wondering if there is a way to possibly optimize the page and querys in such a way that it doesn't take so long to load.

 

I'm basically using 4 queries to get the value of each pack and 1 function to average the query data. And I add them up as I go.

 

This is my function to find average values

///AVERAGE FUNCTION
function calculate_average($arr) {
    $count = count($arr); //total numbers in array
    foreach ($arr as $value) {
        $total = $total + $value; // total value of array numbers
    }
    $average = ($total/$count); // get average value
    return $average;
}

These are the queries to get the Average Values

<?php
///SETTING THE DAY
$today = date("Y/m/d");
///ALTERING DAY QUERY TIME (20 Days of Data)
$minusday = mktime(0,0,0,date("m"),date("d")-20,date("Y"));
///SETTING THE DAY FOR THE QUERIES
$queryday = date("Y/m/d",$minusday);

///DATA SET FOR BOOSTER PACK 1
//GET THE MYTHIC AVERAGE VALUE
$sqlMythic=mysql_query("SELECT AVG( ab.Price_Per ) AS Aaverage
FROM auctions AS ab
INNER JOIN cardlist AS c ON c.card_name = ab.Card_Name
WHERE ab.Day >= '$queryday'
AND c.rarity = 'Mythic Rare'
AND c.set = '1'
GROUP BY c.card_name, ab.Card_Name") or die;
while ($row=mysql_fetch_array($sqlMythic)) {
$MythicValues[]=$row['Aaverage'];
}
///MYTHIC VALUE IS 10% OF AVERAGE VALUE
$Mythic = calculate_average($MythicValues) * .1;

//GET THE RARE AVERAGE VALUE
$sqlRare=mysql_query("SELECT AVG( ab.Price_Per ) AS Aaverage
FROM auctions AS ab
INNER JOIN cardlist AS c ON c.card_name = ab.Card_Name
WHERE ab.Day >= '$queryday'
AND c.rarity = 'Rare'
AND c.set='1'
GROUP BY c.card_name, ab.Card_Name") or die;
while ($row=mysql_fetch_array($sqlRare)) {
$RareValues[]=$row['Aaverage'];
}
///RARE VALUE IS 90% OF AVERAGE RARE VALUE
$Rare = calculate_average($RareValues) *.9;
///TOTAL CONTRIBUTION TO PACK 100% IS 10% MYTHIC + 90% RARE
$raremythic= $Mythic + $Rare;

///GET THE UNCOMMON AVERAGE VALUE
$sqlUncommon=mysql_query("SELECT AVG( ab.Price_Per ) AS Aaverage
FROM auctions AS ab
INNER JOIN cardlist AS c ON c.card_name = ab.Card_Name
WHERE ab.Day >= '$queryday'
AND c.rarity = 'Uncommon'
AND c.set='1'
GROUP BY c.card_name, ab.Card_Name") or die;
while ($row=mysql_fetch_array($sqlUncommon)) {
$ucValues[]=$row['Aaverage'];
}
///UNCOMMON VALUE IS VALUE * 3
$Uncommon = calculate_average($ucValues);
$urm= ($Uncommon * 3) + $raremythic;

///GET THE COMMON VALUE
$sqlCommon=mysql_query("SELECT AVG( ab.Price_Per ) AS Aaverage
FROM auctions AS ab
INNER JOIN cardlist AS c ON c.card_name = ab.Card_Name
WHERE ab.Day >= '$queryday'
AND c.rarity = 'Common'
AND c.set='1'
GROUP BY c.card_name, ab.Card_Name") or die;
while ($row=mysql_fetch_array($sqlCommon)) {
$cValues[]=$row['Aaverage'];
}
///COMMON VALUE IS VALUE * 10
$common = calculate_average($cValues);
//TOTAL SET 1 VALUE IS ALL VALUES ADDED UP
$curm= ($common * 10) + $urm;
?>

 

But I'm not real sure where the strain is coming from. The page seems to load really slow, and I'm not sure if I should just try and write all these queries as a separate function then have it write the data to a separate table, or if there is another way to optimize this code.

 

I'm still have a lot to learn so I would appreciate any thoughts or ideas you folks can offer me.

 

Many thanks

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.