当前位置:编程学习 > C#/ASP.NET >>

100万数据快速where的思路?

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

id  cid
id  栏目id

select * from table wehre cid=xxx --------------------编程问答-------------------- 对where后面的字段建立索引。 --------------------编程问答-------------------- 如果你的where中没有用到模糊查询的话,就考虑用索引来解决你的问题。 --------------------编程问答-------------------- id cid
id 栏目id

select * from table wehre cid=xxx

加索引cid --------------------编程问答-------------------- 这样有效果没?就5个栏目。 --------------------编程问答-------------------- 加索引,优化语句,

不要用*,条件要明确,wehre改成where --------------------编程问答-------------------- 加索引cid
分页查询数据
--------------------编程问答-------------------- 添加索引!

你的语句是什么? --------------------编程问答-------------------- 添加非聚焦索引,添加包含性列(如果可以,把你经常用到的几个数据列包含进去)
把需要的数据分好页然后再返回 --------------------编程问答-------------------- 依情况而定,
看楼主where条件中数据是 几个重复的,
还是不重复,
建立聚集索引和非聚集索引。 --------------------编程问答-------------------- 那就在栏目id上建个聚集索引

查询的时候把栏目id也加进去过滤 --------------------编程问答-------------------- 分段查询!! --------------------编程问答-------------------- 要连表查询吗?
要连表的话,就再建关系 --------------------编程问答-------------------- 看不懂数据。 --------------------编程问答-------------------- 建立索引 定期删除索引重建 --------------------编程问答-------------------- 被where order by group by 的字段要加上索引。 --------------------编程问答-------------------- 索引时正解 --------------------编程问答-------------------- select top 1 * from table wehre cid=xxx --------------------编程问答-------------------- 使用聚集索引或非聚集索引来提高性能.。  
尽量的根据查询需求来优化SQL语句. 
根据执行计划等某些情况来选择是否对表进行水平分区 --------------------编程问答-------------------- --------------------编程问答-------------------- 帮顶! --------------------编程问答--------------------
引用楼主 ttyytt1 的回复:
以前数据不多。没注意。现在数据上百万了where好慢。。哪位大哥有思路?很简单的栏目-数据模式

id  cid
id  栏目id

select * from table wehre cid=xxx


估计楼主的cid是用的字符串, 如果能设计成数字的话,应该就没这个问题了, 不过索引还是应该的. --------------------编程问答-------------------- 加索引cid
用控件显示的话要分页 --------------------编程问答-------------------- 给CID建立索引,如果where有过多条件的话建议与索引配合使用 --------------------编程问答-------------------- 如果cid建了索引,还很慢,应该是数据量太大的原因,一般就不是SQL语句能简单搞定的了,应该在程序中做缓存 --------------------编程问答-------------------- 楼上说的有理! --------------------编程问答-------------------- 索引、、、、、、、 --------------------编程问答-------------------- 路過,
發現很多跟帖的所謂"答案",
不知該說些什麼好...... --------------------编程问答-------------------- 给cid建立索引 --------------------编程问答-------------------- 建立索引,再者这个*表示所有列,如果你在前台页面中没有全部用到的话,那就改成你需要的列名 --------------------编程问答-------------------- 如果没有模糊查询的功能的话,建索引时所选。
【当然数据库自动已经把主键id建成了索引了。不过栏目id上的索引还需要你根据需要自己建】 --------------------编程问答-------------------- create index

这是必须的 --------------------编程问答-------------------- create index
建索引 --------------------编程问答--------------------
引用 1 楼 dalmeeme 的回复:
对where后面的字段建立索引。

我想也只能通过调整表结构来解决。。。 --------------------编程问答-------------------- 百萬級真的不大,
建索引就應該就可以了
你不會說你在用一台組裝機當服務器用吧? --------------------编程问答-------------------- 分页sql,加存储过程啊 --------------------编程问答-------------------- 无非就是索引、存储过程了、、、 --------------------编程问答-------------------- mark --------------------编程问答--------------------
引用 5 楼 wiki14 的回复:
加索引,优化语句,

不要用*,条件要明确,wehre改成where


sqlserver似乎不用在意select * 的问题,所有语句都会先经过自动优化再执行的
当然我也是看别人的文章 --------------------编程问答-------------------- CID建立索引,如果where有过多条件的话建议与索引配合使用 --------------------编程问答-------------------- 索引..分页.. --------------------编程问答--------------------
引用 38 楼 ff1222 的回复:
引用 5 楼 wiki14 的回复:

加索引,优化语句,

不要用*,条件要明确,wehre改成where


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


那你看走眼了
*表示所有的字段,传输的数据量有时候是巨大的(假如一个表有20个字段,用*就表示所有的返回,其实你只要返回ID,name,你可以计算一下传输量的差别),你所说的优化不会给你缩减字段的,但是Count(*),以及count(name),count(*)会给你优化都到Count(id)上去,id为主键的话
--------------------编程问答-------------------- 限制查找范围,分页查询 --------------------编程问答--------------------
引用 41 楼 whb147 的回复:
引用 38 楼 ff1222 的回复:
引用 5 楼 wiki14 的回复:

加索引,优化语句,

不要用*,条件要明确,wehre改成where


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


那你看走眼了
*表示所有的字段,传输的数据量有时候是巨大的(假如一个表有20个字段,用*就表示所有的……


支持查询的字段要明确。

我也遇见过不明确字段,导致数据很慢的情况。 --------------------编程问答-------------------- 不要用*吧,索引是要有的。然后弄个存储过程。模糊搜索的话,不要like,用patindex吧
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,