我该如何优化mysql查询?

时间:2013-02-28 07:00:33

标签: php mysql

我使用此查询从数据库中获取数据

如何为此连接优化和使用最佳代码?

connect();
$games_sql = mysql_query("SELECT gameid,mizbanid,mihmanid,score1,score2,gamedavar,gamestadium,now FROM games WHERE gameweek='$site_week' ORDER BY now ASC LIMIT 9");
for( $i = 0; $i < mysql_num_rows( $games_sql ); $i++ ) {
    $gameid = @mysql_result( $games_sql, $i, 0);
    $mizbanid = @mysql_result( $games_sql, $i, 1 );
    $mihmanid = @mysql_result( $games_sql, $i, 2);
    $score1 = @mysql_result( $games_sql, $i, 3);
    $score2 = @mysql_result( $games_sql, $i, 4);
    $gamedavar = @mysql_result( $games_sql, $i, 5);
    $gamestadium = @mysql_result( $games_sql, $i, 6);
    $now = @mysql_result( $games_sql, $i, 7);
    $gametimeanddate = jdate("l d M y ساعت G:i", $now);
    $gamedate = jdate("l d M y", $now);
    $gametime = jdate("G:i", $now);


`connect()` function include `mysql_connect` & `mysql_select_db`

如何针对低user_connection到数据库和高速优化此代码?

3 个答案:

答案 0 :(得分:0)

您始终可以使用缓存和内存缓存作为优化解决方案。您可以缓存查询以及可以从缓存中弹出的其他请求

答案 1 :(得分:0)

为什么不查询数据库一次以捕获所有信息? 看看这个:

connect();
$sql = 'SELECT 
    gameid,
    mizbanid,
    mihmanid,
    score1,
    score2,
    gamedavar,
    gamestadium,
    now
FROM games
WHERE gameweek = ' . $site_week . '
ORDER BY now ASC
    LIMIT 9';
$query = mysql_query($sql);

if(mysql_num_rows($query)) {
    while($Result = mysql_fetch_object($query)) { //loop trough results

        print_r($Result); //prints the results.
        echo $Result->gameid; //this is how you echo the data
}
}

请注意,mysql_query函数已弃用,需要替换为mysqli :)。

答案 2 :(得分:0)

那么总有一英里的路要走..你可以通过几种方式进行优化,使用php代码和查询,但你不应该使用即将灭绝的东西

Warning

自PHP 5.5.0起,此扩展程序已弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关的常见问题解答以获取更多信息。该功能的替代方案包括:

mysqli_stmt_num_rows()
PDOStatement::rowCount()

如果您只想计算行数,最好使用: -

SELECT COUNT(*) FROM SomeTable

并且您不应该使用具有benefit over double Quotes

的单引号

并且如NullPointer所述,你不应该use @ to suppress error message。目前,“@”错误控制运算符前缀甚至会禁用将终止脚本执行的严重错误的错误报告。除此之外,这意味着如果你使用“@”来抑制来自某个函数的错误,并且它不可用或者输入错误,那么脚本就会在那里死亡而没有任何关于原因的指示。

相关问题