function causing slow load time
i had this function matching a uid using a binary select query. The sites were loading in about 8 full seconds according to my load timer, sometimes up to 12 seconds!
So this was running on old site code, really just a big mess.
But i copied it to another site and tested each function and the sql that ran on them to see which one was causing the lag time.
This query took about 0.03 seconds to return when tested.
SELECT $field_name FROM $table_name where binary $uid_field_name = '$uid' LIMIT 1
I think I added the binary option as it was not selecting the uid correctly, but removing the binary seems to not make any difference to the results, but reduces this query time a lot.
Test site with 8+k pages was loading in:
Page generated in 8.3164 seconds.
Then after removing the binary select query and just using a normal query, the same page is now.
Page generated in 0.2958 seconds.
So makes a large difference, and more depending on the page or record number i think.
PHP
function get_single_by_uid($field_name,$table_name,$uid,$uid_field_name = "uid") {
global $db;
$x = "";
$uid = mysqli_real_escape_string($db, $uid);
$field_name = mysqli_real_escape_string($db, $field_name);
$table_name = mysqli_real_escape_string($db, $table_name);
//$sql = "SELECT $field_name FROM $table_name where binary $uid_field_name = '$uid' LIMIT 1";
$sql = "SELECT $field_name FROM $table_name where $uid_field_name = '$uid' LIMIT 1";
$result = $db->query($sql);
if(!$result) { return false; }
$x = mysqli_fetch_assoc($result);
if(isset($x[$field_name])) {
return(politeify($x[$field_name]));
}
return false;
}