2014-10-27 88 views
0

我有几个非常小的sql查询,需要太多的时间来运行。小小的mysql_queries需要太多时间

if ($USER) { 
$ss_a = mysql_fetch_array(mysql_query("SELECT uri FROM styles WHERE  id=".$USER["styles"])); 

if ($ss_a) { 
$ss_uri = $ss_a["uri"]; 
} 
} 

因此,需要0.7605552s “选择URI来风格WHERE ID = 1”

其次样式代码

if (!$ss_uri) { 
($r = mysql_query("SELECT uri FROM styles WHERE id=1")) or die(mysql_error()); 

其他小的查询需要太多的时间。

0.5507469 SELECT COUNT(ID)从服务支持问题解决WHERE = '不'

代码:

$res = mysql_query("SELECT COUNT(id) AS problems FROM helpdesk WHERE solved = 'no'"); 

$arr  = mysql_fetch_assoc($res); 
$problems = $arr['problems']; 

有什么办法来优化这些还是什么?

+1

你的桌子很大吗?如果是:有多大? 'id'是一个索引吗?如果不是,为什么不呢? :) – Adimeus 2014-10-27 12:07:43

+0

你能提供更多信息吗? Mysql版本,OS,表大小。 – MarkOverride 2014-10-27 12:07:49

+0

参见[** this **](http://stackoverflow.com/questions/13944956/the-mysql-extension-is-deprecated-and-will-be-removed-in-the-future-use-mysqli) ....'mysql_ *'已弃用(官方在php 5.5中) – itachi 2014-10-27 12:15:48

回答

0

索引可能有帮助。我建议尝试:

create index idx_styles_id_uri on style(id, uri) 
create index idx_helpdesk_solved_id on helpdesk(solved, id)