0

我的问题是我的页面加载速度很慢......(2-3秒)我测试了问题的根源在哪里,我看到的是那部分:$query = mysql_query......

这是页面:

require_once('config/db_config.php');
require_once 'class/PHPTemplate.class.php';
session_start();
//Connect to mysql server
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$link) {
    die('Failed to connect to server: ' . mysql_error());
}
//Select database
$db = mysql_select_db(DB_DATABASE);
if(!$db) {
    die("Unable to select database");
}
$query = mysql_query("SELECT * FROM pages WHERE url_address='Skarabeol'");
$numrows = mysql_num_rows($query);
if($numrows!=0) {
    while ($row = mysql_fetch_assoc($query)) {
        $content=$row['content'];
        $title=$row['title'];
    }
} else {Echo "Page not found!";}
$rows = array(
    array(1.1, 1.2, 1.3),
    array(2.1, 2.2, 2.3),
    array(3.1, 3.2, 3.3),
    array(4.1, 4.2, 4.3)
);
$tpl = new PHPTemplate();
$tpl->add('title', $title);
$tpl->add('content', $content);
$tpl->add('current_year', date('Y'));
//$tpl->add('rows', $rows);
//$tpl->add('rows_count', count($rows));
$tpl->load('footer', 'tpl/footer.tpl');
$tpl->display('tpl/page.tpl');
?>

它将加载一个模板文件(我在没有 mysql 连接的情况下进行了测试,它工作正常)。

这是配置文件,以防您想查看它...

  define('DB_HOST', 'localhost');
  define('DB_USER', 'xxxxxxx');
  define('DB_PASSWORD', 'xxxxxxxxxx');
  define('DB_DATABASE', 'xxxxxxxxx');

我做错了什么?

如果您需要我向您展示其他任何内容,请告诉我......提前致谢!

4

1 回答 1

0

尝试使用分析来查看 SQL 统计信息。

mysql> set profiling=1;
Query OK, 0 rows affected (0.00 sec)

mysql> select sql_no_cache * from tblwebentry where webID = 433382;
+--------+-----------------------------+-----------------------------------------------------+------------+--------------------+---------------+-------------+---------+-------------+---------------+----------------+---------+
| webID  | webEntryName                | webAddress                                          | webMessage | webStdCodeSearchID | webPriorityID | webRadiusID | webLogo | webLatitude | webLongtitude | webShowAddress | websort |
+--------+-----------------------------+-----------------------------------------------------+------------+--------------------+---------------+-------------+---------+-------------+---------------+----------------+---------+
| 433382 | Allen House Business Centre | Allen House, The Maltings, Sawbridgeworth, CM21 9JX |            |                100 |             1 |           1 |         |   51.812466 |      0.159480 | 1              |       1 |
+--------+-----------------------------+-----------------------------------------------------+------------+--------------------+---------------+-------------+---------+-------------+---------------+----------------+---------+
1 row in set (0.00 sec)

mysql> show profile;
+--------------------+----------+
| Status             | Duration |
+--------------------+----------+
| starting           | 0.000029 |
| Opening tables     | 0.000010 |
| System lock        | 0.000002 |
| Table lock         | 0.000005 |
| init               | 0.000018 |
| optimizing         | 0.000006 |
| statistics         | 0.000030 |
| preparing          | 0.000007 |
| executing          | 0.000002 |
| Sending data       | 0.000041 |
| end                | 0.000003 |
| end                | 0.000002 |
| query end          | 0.000002 |
| freeing items      | 0.000005 |
| closing tables     | 0.000003 |
| logging slow query | 0.000001 |
| cleaning up        | 0.000003 |
+--------------------+----------+
17 rows in set (0.00 sec)

也试试:

mysql> EXPLAIN SELECT wciid, wcIname FROM tblwebclassification WHERE wciname = 'plumbers';
+----+-------------+----------------------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table                | type | possible_keys | key  | key_len | ref  | rows | Extra       |
+----+-------------+----------------------+------+---------------+------+---------+------+------+-------------+
|  1 | SIMPLE      | tblwebclassification | ALL  | wcIName       | NULL | NULL    | NULL | 1702 | Using where |
+----+-------------+----------------------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)
于 2013-05-02T10:45:42.413 回答