-1

我正在处理一个过于松散和复杂的旧结构和糟糕的设计数据库。可悲的是,我必须这样做。:(

我的 PHP 使用旧方法从表中查询每个信息。然后我用join重新编码。但是大问题出现了。查询这些信息需要近一分钟(有时更多)。

这是我的代码:

select *, car_db.id as cid, tbl_province.province_name as prov_name,
config_car_color.color_title as clr_title, 
config_car_color.description as clr_desc, 
car_viewer.vwr_id as viewers 
from car_db 
inner join tbl_province on tbl_province.province_code=car_db.prov 
inner join config_car_color on config_car_color.id=car_db.color 
inner join car_viewer on car_viewer.vwr_cid=car_db.id 
where car_db.tid='$_tid'

从这段代码的最新查询开始,它花了 3.37 秒。但通常运行代码至少需要 30 秒。

问题是您能否建议我更快地处理这些行的最佳方法是什么。

4

2 回答 2

1

创建以下索引:

car_db (tid)
tbl_province (province_code) -- might be PK
config_car_color (id) -- might be PK
car_viewer (vwr_cid)
于 2013-04-25T15:00:58.060 回答
1

首先,我可以看到这里发生了冗余。由于 * 会从所有表中选择所有内容,因此您仍然要再次选择其中一些列。尝试从这些表中仅选择您需要的列。

于 2013-04-25T15:04:08.407 回答