以前数据不多。没注意。现在数据上百万了where好慢。。哪位大哥有思路?很简单的栏目-数据模式id  cid
id  栏目idselect * from table wehre cid=xxx

解决方案 »

  1.   

    对where后面的字段建立索引。
      

  2.   

    如果你的where中没有用到模糊查询的话,就考虑用索引来解决你的问题。
      

  3.   

    id cid
    id 栏目idselect * from table wehre cid=xxx加索引cid
      

  4.   

    加索引,优化语句,不要用*,条件要明确,wehre改成where
      

  5.   

    加索引cid
    分页查询数据
      

  6.   

    依情况而定,
    看楼主where条件中数据是 几个重复的,
    还是不重复,
    建立聚集索引和非聚集索引。
      

  7.   

    那就在栏目id上建个聚集索引查询的时候把栏目id也加进去过滤
      

  8.   

    被where order by group by 的字段要加上索引。
      

  9.   

    select top 1 * from table wehre cid=xxx
      

  10.   

    使用聚集索引或非聚集索引来提高性能.。  
    尽量的根据查询需求来优化SQL语句. 
    根据执行计划等某些情况来选择是否对表进行水平分区
      

  11.   


    估计楼主的cid是用的字符串, 如果能设计成数字的话,应该就没这个问题了, 不过索引还是应该的.
      

  12.   

    加索引cid
    用控件显示的话要分页
      

  13.   

    给CID建立索引,如果where有过多条件的话建议与索引配合使用
      

  14.   

    如果cid建了索引,还很慢,应该是数据量太大的原因,一般就不是SQL语句能简单搞定的了,应该在程序中做缓存
      

  15.   

    如果没有模糊查询的功能的话,建索引时所选。
    【当然数据库自动已经把主键id建成了索引了。不过栏目id上的索引还需要你根据需要自己建】
      

  16.   

    create index这是必须的
      

  17.   


    sqlserver似乎不用在意select * 的问题,所有语句都会先经过自动优化再执行的
    当然我也是看别人的文章
      

  18.   

    CID建立索引,如果where有过多条件的话建议与索引配合使用
      

  19.   


    那你看走眼了
    *表示所有的字段,传输的数据量有时候是巨大的(假如一个表有20个字段,用*就表示所有的返回,其实你只要返回ID,name,你可以计算一下传输量的差别),你所说的优化不会给你缩减字段的,但是Count(*),以及count(name),count(*)会给你优化都到Count(id)上去,id为主键的话
      

  20.   

    不要用*吧,索引是要有的。然后弄个存储过程。模糊搜索的话,不要like,用patindex吧