日期:2014-05-18  浏览次数:20563 次

搜索速度问题
表结构
产品表:ProductInfo   关健字段   CorpID,ProductID
厂商表:Corporation   关健字段   CorpID
产品类别表:ProductType   关健字段   ProductID   CategoryID
类别表:Category   关健字段   CategoryID   parentID
产品对象表:   ProductObject   关健字段   ProductID   CategoryID
对象表:DictCode   关健字段   DictCode

产品表与厂商表是-对-的关系   关联字段是CorpID
产品表与产品类别表是一对多   关联字段是ProductID
(这里的类别表父子关系是在一个表里,有ParentID字段关联)
产品表与产品对象表也是-对多   关联字段也是ProductID

主键是char(36),都建有聚集索引.关联字段也都有索引.   现在搜索得很慢...




------解决方案--------------------
看表能不能再优化?
------解决方案--------------------
char(36)

-->

varchar(36)
------解决方案--------------------
太多的关联,那速度肯定会慢了,把查询语句发出来看一下!
------解决方案--------------------
你應該去掉1=1(這樣的話你所有的索引不會起作用,當然慢了)
我痛恨那些程序員在前台偷懶的作法,如:為了少寫代碼而用where 1=1然後動態組合SQL語句

------解决方案--------------------
where 后面將主鍵、索引放在最左邊
等號左邊的字段最好不要加函數
------解决方案--------------------
where 1=1 是个很糟糕的写法