有一个表数据量每天存入数据3百万左右,现在千万级,要筛选表里一些数据,怎么查才能速度快一点

图片说明![图片说明](https://img-ask.csdn.net/upload/201803/02/1519966424_539301.png)图片说明

这个问题够写一篇分析报告了。
1. 首先每天三百万数据,这张表再大,最后都会撑不住,横向分表是自然的事。估计最先想到的是按时间来分吧。
2. 查询速度的问题可使用的技术方案有很多,但先要做的是对业务查询的分析。找出瓶颈,才能有的放矢。试列举几种:
i 缓存,已查过的放内存,没查过的才查
ii 索引,合理利用索引,甚至构造自己的索引表
ii 并行,可以多线程/多进程甚至分布式
iV 分离读写,使用数据仓库,专门面对查询
V 预处理,我先查,等你来问的时候,我只是把结果告诉你,能不快么?

 最后一个方针:与其榨出每条查询语句的效率,不如从架构上总体设计,这才是正确的展开方式。

按日期分表呗,我看查询的时候都是按日期查询的

关键字段建索引,显示数据时分页,每次查询只查询当页的数据

用索引或者分表来查询

建议分表做,还有就是优化sql语句 尽量不要让字段出现null存储,sql语句里有时间大小写比对,建议时间值用int类型存储,时间即时间戳。

分区应该也行吧

分区表,加适当的索引

1,建议分表做,还有就是优化sql语句 尽量不要让字段出现null存储,sql语句里有时间大小写比对,建议时间值用int类型存储,时间即时间戳。
2,用索引或者分表来查询
3,按日期分表呗,我看查询的时候都是按日期查询的

我知道,但是没写过,不知是否可行?首先哪,数据千万级,看您的查询条件是instationdate等于具体日期,此时哪,后边的筛选条件就先不要了,先把
数据从数据库里拿出来(要知道筛选条件越多,查询效率越慢),丢到mogoDb里面处理,支持条件筛选;或直接java里面处理,不知会不会内存溢出哪。
哈哈,有用的话给我点C币吧。

如果做成常用查询功能,建议使用搜索引擎,比如开源的es,这样就可以将多个字段作为检索条件,方便后续扩展。

按数据的日期分表作为缓冲表,再进行并行查询

开源的es,这样就可以将多个字段作为检索条件,方便后续扩展

分而治之在,,分库,,分表,分成小块,,逐个筛选,汇总,,,

这样可以多线程,甚至多个服务器来筛选,,

我有两篇博客都是处理百万级和千万级的,你可以看一下。
http://blog.csdn.net/en_joker/article/details/78481007
http://blog.csdn.net/en_joker/article/details/78161898
不过,按照你这个量,我建议用其他方法替代,比如solr,es,或者mongodb。