以前这个表中只有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.引入字段,做分区。
原则上楼主可以采取第一种办法,如果速度没有明显的提升,那么就用分区表。
千万级别的数据库已经不是单纯索引能解决的了!
1.表拆分为多个表,外键关联。
2.引入字段,做分区。
原则上楼主可以采取第一种办法,如果速度没有明显的提升,那么就用分区表。
千万级别的数据库已经不是单纯索引能解决的了!
#6
up,谁有过类似经验啊,超过百万条记录的
#7
up
#8
百万的 基本就不需要做拆分...合理的建索引就成~
#1
关注....
#2
帮顶。。。
#3
先做垂直分割,把不常查询的,列长很长的列,比如varchar,text提出来,单独做一张表,两表通过外键联合。
如果有需要再做水平分割。建分区表也好,人为分表也行。
索引做到位。如果是历史表,把索引做到最强大~
如果有需要再做水平分割。建分区表也好,人为分表也行。
索引做到位。如果是历史表,把索引做到最强大~
#4
根据业务看看能不能折分表吧
#5
楼主可以采取如下方式:
1.表拆分为多个表,外键关联。
2.引入字段,做分区。
原则上楼主可以采取第一种办法,如果速度没有明显的提升,那么就用分区表。
千万级别的数据库已经不是单纯索引能解决的了!
1.表拆分为多个表,外键关联。
2.引入字段,做分区。
原则上楼主可以采取第一种办法,如果速度没有明显的提升,那么就用分区表。
千万级别的数据库已经不是单纯索引能解决的了!
#6
up,谁有过类似经验啊,超过百万条记录的
#7
up
#8
百万的 基本就不需要做拆分...合理的建索引就成~