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

时间:2022-01-18 23:34:37
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字段就不用了)。
 查询的时候,通过联表查询。

讨论一下是否有更好的解决办法,主要是为了提高查询速度?

8 个解决方案

#1



关注....

#2


帮顶。。。

#3


先做垂直分割,把不常查询的,列长很长的列,比如varchar,text提出来,单独做一张表,两表通过外键联合。

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

索引做到位。如果是历史表,把索引做到最强大~

#4


根据业务看看能不能折分表吧

#5


楼主可以采取如下方式:
1.表拆分为多个表,外键关联。
2.引入字段,做分区。

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

千万级别的数据库已经不是单纯索引能解决的了!

#6


up,谁有过类似经验啊,超过百万条记录的

#7


up

#8


百万的 基本就不需要做拆分...合理的建索引就成~ 【请教SQL版的所有朋友】有一张800万条数据的表,如何提高查询速度?

#1



关注....

#2


帮顶。。。

#3


先做垂直分割,把不常查询的,列长很长的列,比如varchar,text提出来,单独做一张表,两表通过外键联合。

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

索引做到位。如果是历史表,把索引做到最强大~

#4


根据业务看看能不能折分表吧

#5


楼主可以采取如下方式:
1.表拆分为多个表,外键关联。
2.引入字段,做分区。

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

千万级别的数据库已经不是单纯索引能解决的了!

#6


up,谁有过类似经验啊,超过百万条记录的

#7


up

#8


百万的 基本就不需要做拆分...合理的建索引就成~ 【请教SQL版的所有朋友】有一张800万条数据的表,如何提高查询速度?