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

数据库分表和分区的问题
SQLSERVER2000(32位)数据库中news表有150W条记录,由于需要使用了Like语句,有些常用语句,查询需要扫描5W左右的记录才能返回,现在数据的查询速度有些慢。有什么好办法解决吗?

另外,想将此表切分,是采用分表后union all比较好,还是采用分区表比较好?
请高手指点。

------解决方案--------------------
150W 条数据应该不算多,关键是,你用 like 来查询速度很难加快,你可以考虑采用全文索引.分表也不行,因为你并没有把这些内容分成数个不同区间的方案,最后查的,还是要在全部数据中进行查询.
如果like 子句采用这样的形式: like 'asdf%',即模糊查询模糊的是查询字符串后半部的话,还能利用索引,否则不行.
------解决方案--------------------
150W也多啊,
------解决方案--------------------
升级到05或者08 然后建立一些索引都

效果会很明显。

------解决方案--------------------
150W的数据量不是很大了,在like前先把要筛选的数据找出来,最后在用like来获取需要的数据,不会直接接收几十万或上百万的数据显示出来吧!