日期:2014-05-17  浏览次数:20385 次

sql 查询变慢
我有一个表 其中使用 g_type 列的值区分录入数据的类型,g_type与一个表存在主外键关系,一共8个类型
这个表与其他几个表都有主外键关系
为了方便查询,我建立一个视图
开始查询时where g_type=1 或 g_type=2 几万条时速度在几秒就可完成
后来应业务需要我又添加一个类型
添加后问题出来了,我在查询这个类型的数据时,时间特别的慢几百条数据需要1‘30多秒才可以查出来
可查询where g_type=1 或 g_type=2。。。8时速度正常仍然是几秒就可以查询出来

现在请问大家,造成查询速度慢的愿意在哪里?如何解决?

------解决方案--------------------
g_type 列设置索引.
------解决方案--------------------
where条件中的g_type列设置索引,如果频繁查询的话,用存储过程试试
------解决方案--------------------
如果你查詢where部份只有 g_type=1 或 g_type=2,可以如"晴天"兄說的在g_type 列设置索引。
如果你查詢計劃無法應用到你創建的索引,可以指定索引來,如select ... from tablename with(index(索引名)) where ...


------解决方案--------------------
1、统计信息没有更新。
2、索引无效或者丢失索引。
3、数据的分布不平均。导致查询某些数据的时候需要扫描表。