function causing slow load time
<p>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!</p>
<p>So this was running on old site code, really just a big mess. </p>
<p>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. </p>
<p>This query took about 0.03 seconds to return when tested. </p>
<p><code>SELECT $fieldname FROM $tablename where binary $uidfieldname = '$uid' LIMIT 1</code></p>
<p>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. </p>
<p>Test site with 8+k pages was loading in:</p>
<p>Page generated in 8.3164 seconds.</p>
<p>Then after removing the binary select query and just using a normal query, the same page is now. </p>
<p>Page generated in 0.2958 seconds.</p>
<p>So makes a large difference, and more depending on the page or record number i think. </p>
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;
}