【请教SQL版的所有朋友】有一张800万条数据的表,如何提高查询速度?

yangtzeu 2009-05-05 01:34:01
SQL2005数据库,有一张表t_Info,大概有30个字段(大部分都是int,varchar,只有3个字段是text类型)。
以前这个表中只有8万条数据,fulltext字段作为全文索引字段(完全填充,凌晨5点操作)
现在数据一下增加到800万条,如何提高查询速度?
我想到了如下几种办法:请指点:

办法(1)仅仅将全文索引改为增量填充,增加一个数据类型timestamp时间戳的字段。

办法(2)增加一个表t_Infokey,数据量和这个表一样(800W条),不同的时候,通过外键和t_Info关联。
t_Infokey只有id,t_info_id,fulltext三个字段。
然后将全文索引建在这个t_Infokey表中(t_Info表中的fulltext字段就不用了)。
查询的时候,通过联表查询。

讨论一下是否有更好的解决办法,主要是为了提高查询速度?
...全文
322 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
大P 2009-05-07
  • 打赏
  • 举报
回复
百万的 基本就不需要做拆分...合理的建索引就成~
yangtzeu 2009-05-05
  • 打赏
  • 举报
回复
up
yangtzeu 2009-05-05
  • 打赏
  • 举报
回复
up,谁有过类似经验啊,超过百万条记录的
JonasFeng 2009-05-05
  • 打赏
  • 举报
回复
楼主可以采取如下方式:
1.表拆分为多个表,外键关联。
2.引入字段,做分区。

原则上楼主可以采取第一种办法,如果速度没有明显的提升,那么就用分区表。

千万级别的数据库已经不是单纯索引能解决的了!
nzperfect 2009-05-05
  • 打赏
  • 举报
回复
根据业务看看能不能折分表吧
flairsky 2009-05-05
  • 打赏
  • 举报
回复
先做垂直分割,把不常查询的,列长很长的列,比如varchar,text提出来,单独做一张表,两表通过外键联合。

如果有需要再做水平分割。建分区表也好,人为分表也行。

索引做到位。如果是历史表,把索引做到最强大~
zhouzhijian888 2009-05-05
  • 打赏
  • 举报
回复
帮顶。。。
ChinaJiaBing 2009-05-05
  • 打赏
  • 举报
回复

关注....

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧