php - 我将如何优化这个 PHP SQL 脚本?

标签 php mysql sql

我将下面的 SQL 查询用于我的 .net 许可系统,该系统通过 PHP 编写的后端 API 向用户授予许可。

现在我在 SQL 方面还不太聪明,但是如果有人能指出我正确的方向来优化以下代码,那将会有很大帮助!

连接 PHP:

<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'test');
define('DB_USERNAME', 'user');
define('DB_PASSWORD', 'Codwawmw2%');

$odb = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USERNAME, DB_PASSWORD);
?>

SQL 查询:

} elseif ($Action == "BackLogin"){
    $userID123 = $_GET['uid'];
    $hwid = $_GET['hwid'];
    $ip = getRealIpAddr();
    $pcname = $_GET['pcname'];
    $time123 = time();

    $GetRows = $odb->query("SELECT * FROM `Account` WHERE uid = '$userID123'");
    $row_count = $GetRows->rowCount();
    $count = $row_count;
    if($count == 0){
        $odb->exec("INSERT INTO `Account` (id, uid, cpukey, ip, pcname, online, function, lastlogon) VALUES(NULL,'$userID123','$hwid','$ip','$pcname','0','None','$time123')");
        $response = 'Not Banned';
    } else {
        $response = 'Not Banned';
    }

    if ($response == "Not Banned")
    {
        $finaleresponse = "Success";
        $odb->exec("UPDATE Account SET `online` = '1', `lastlogon` = '$time123', `ip` = '$ip' WHERE `uid` = '$userID123'");
    } 
    else
    {
        $finaleresponse = "Error";
    }
    echo Encrypt($finaleresponse);
}

顺便说一句,我需要优化脚本的原因是,每次它由 50 多个客户端同时运行时,都会对网站/服务器造成沉重的负载,并且实际上会使整个网站滞后到无负载的程度。 ..

感谢任何可以提供帮助的人:)

最佳答案

请获取所选字段而不是*。快速获得结果。

$GetRows = $odb->query("从 帐户 WHERE uid = '$userID123'中选择 uid、cpukey、ip、pcname");

关于php - 我将如何优化这个 PHP SQL 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42659424/

相关文章:

php - 当sql结果包含多行时,如何从中单独获取每一行?

php - jQuery - 如何通过不同的步骤获得响应?

php - CodeIgniter、models、ORM,这个怎么处理?

java - 在 App Engine 上部署应用程序后出现时间戳问题

PHP:替换utf-8字符串中的无效字符

MySQL 对多个表进行排序需要很长时间

mysql - 在 Rails 中使用 Active Record 时如何指定 Ruby 正则表达式?

php - 在 php 类中返回多个 mysql 结果

mysql - 根据当前日期对数据进行排序

sql - 如何在 SQL Server 2008 中从选择查询结果创建表