改变类型的mysql php请求

时间:2018-03-25 01:55:18

标签: php mysql performance

我从mysql连接到php数据库并进行3次查询(请参阅下面的代码)。但是,当我检查这个PHP脚本从0.5 - 2.5秒获取的性能时,一切正常。什么可能是造成这种时间差异的原因?一般来说,您对如何提高脚本性能(可能优化请求或使用其他功能)有任何建议吗? fingerprintIP列已编入索引。谢谢!

$conn = new mysqli('localhost', 'user1', 'pass1', 'db1');

$sql = 'INSERT INTO Test '. 
        '(token, result, Link, IP, useragent, resolution, language, screen, fingerprint) '. 
        'VALUES ("' .$_GET['token_']. '", "OK", "ststsebhoupe", "'.$_GET['addr_'].'", "'.$_SERVER['HTTP_USER_AGENT'].'", "'.$_GET['flag_'].'", "'.$_SERVER['HTTP_ACCEPT_LANGUAGE'].'", "'.$_GET['screen_'].'", "'.$_GET['fingerprint_'].'")';  


$conn->query($sql);

$found1 = $conn->query("SELECT COUNT(*) FROM Test WHERE `Link` = 'ststsebhoupe' and `fingerprint` = '".$_GET['fingerprint_']. "'")->fetch_row()[0];

$found2 = $conn->query("SELECT COUNT(*) FROM Test WHERE `Link` = 'ststsebhoupe' and `IP` = '".$_GET['addr_']. "'")->fetch_row()[0];


$conn->close();

1 个答案:

答案 0 :(得分:0)

要加速那些两个SELECTs,请在表格中创建这两个索引:

INDEX(Link, fingerprint)  -- in either order
INDEX(Link, IP)           -- in either order