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、数据的分布不平均。导致查询某些数据的时候需要扫描表。
------其他解决方案--------------------3、数据的分布不平均。导致查询某些数据的时候需要扫描表。
这个有可能
前两项都没问题