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

优化,一张容纳海量数据的表,会经常被更新和插入数据(插入数据更多),在不同时间段还会被查询,这样的表需要建立索引么?
我的初衷是要提高效率,不管是对表查询还是插入,更新,不管用什么办法,请高人们给予意见!

------解决方案--------------------
引用楼主 yuyangyangde 的帖子:
我的初衷是要提高效率,不管是对表查询还是插入,更新,不管用什么办法,请高人们给予意见!

------解决方案--------------------
索引肯定要建立,特别是那些经常用到的查询字段。
------解决方案--------------------
1、合理的建立索引,特别是作为Where条件的字段;
2、注意锁定,如果允许读取脏数据的话,查询的时候加上with(nolock);
3、如果数据分布比较均匀,可以尝试分区表;
4、查询的时候注意使用索引,避免使用like '%...'、not in等不能使用索引的语句;
5、特别注意不要使用select *这种方式返回数据;
6、服务器的数据库文件分布合理,如果没有使用磁盘阵列的话可以减少IO争用...

还有很多优化方面的技巧,论坛里面很多这方面的帖子,可以查阅一下。
------解决方案--------------------
这种问题只能在一个大方向上具体问题具体分析了。慢不是索引就能解决问题的,你要考虑实际应用。
------解决方案--------------------
插入就不要索引

查询就要建立强大索引

需求是矛盾的,看你自己偏重哪方面

我的建议,按天分表,只有当天表是无索引的,其他所有历史表索引做到最强大,联合成视图
------解决方案--------------------
探讨
引用:
引用楼主 yuyangyangde 的帖子:
我的初衷是要提高效率,不管是对表查询还是插入,更新,不管用什么办法,请高人们给予意见!

1.建立主键.
2.经常要用到的对某字段的查询,对这个字段建立索引.
3.经常要用到的对某几个字段的查询,对这几个字段建立复合索引.
4.如果还不能解决问题,建议对经常使用的查询建立视图.
5.如果还不行,建议分表存储数据.


1.主键已经存在
2.经常要用的字…

------解决方案--------------------
引用楼主 yuyangyangde 的帖子:
我的初衷是要提高效率,不管是对表查询还是插入,更新,不管用什么办法,请高人们给予意见!