2013-06-29 86 views
0

这是一个很小的问题。基本连接数据库,运行查询,关闭连接?

但我有一个问题,我相信源于这个写得不好的数据库查询。我不知道是否我没有关闭连接,或者是否需要关闭连接,但服务器正在指示它在大约60秒后超时,并且导致资源占用率过高。任何人都可以告诉我这个查询有什么问题吗?

这只是一个基本的php查询,从数据库中提取。

<?php if(isset($_POST['submit'])) { 

    //print_r($_POST); 

    $example=$_POST['...']; 

    if ($job_number=="") { die("Nothing here."); 

    } 

    $con = mysql_connect("...","...","..."); 

    if (!$con) 

     { 
     die('Could not connect: ' . mysql_error()); 
     } 

    mysql_select_db("...", $con); 

    $query = "SELECT * FROM EXAMPLE WHERE job_number='$example' OR email='$example'"; 

    $result = mysql_query($query); 

    if (mysql_num_rows($result) == "0") { 

    echo 
    'Nothing here.'; 

exit; 
    } 

    echo "<div class='sample'>"; 

    while ($row = mysql_fetch_assoc($result)) { 
     //print_r($row); 
     //customer name 

     echo "<h2>" . $row['name'] ."</h2>"; 

     //status 

     echo "<p>" . $row['status'] ."</p>"; 


     } 
     echo "</div>"; 

    } 
mysql_close($con); 
?> 
+0

这个例子似乎没问题。你的桌子有多少行? –

+0

如果表格非常大(数百万行),它是否有'job_number'和'email'索引? – Barmar

+0

如果你不打算进一步查询,你应该将你的'''''mysql_close($ con);'''移动到刚刚得到结果之后。现在,如果你退出,你就会离开。 – DivinusVox

回答

0

说实话,有很多数据库你不理解。

数据库需要时间阅读。它们被索引的方式定义了你需要如何阅读它们。

看看这个Measuring actual MySQL query time

...和其他几个人。 我有一种感觉,你的数据库是巨大的,并且可能结构不合理。这是我是指你:

http://en.wikipedia.org/wiki/Database

有丰富的信息在这里清除你的问题了。