Mysql多表查询问题

场景:
系统每天会生成一个mysql数据表,里面存储的当天的模块访问量,假设字段为pv。如何统计一个月的模块访问量呢?每个表的结构都是一样的。
图片描述

非常感谢!

阅读 6.2k
12 个回答
  1. 如果是每天的数据量不是特别大,可以按月分表,这样问题就只需要查询统计一张表了;
  2. 使用视图,创建多表视图,但是如果数据量很大得话,需要很长时间。
  3. 在数据量大的情况下,只是为了记录很统计,关系数据库就不是一个很好的选择了,可以考虑一下NoSQL,比如Hbase。

= =
MySQL数据表不是可以无限建的,你们这TM是什么设计。。。
建议回家看看数据库设计的书先。。。
一开始都放在一个表里,根本就不会这么蛋疼了啊???
你们有考虑性能和可维护性的问题吗???

多表建立视图试试

select count(1) from pv_150506
union all
select count(1) from pv_150507
union all
........

foreach结果集,相加汇总。

每天都自己创建一个数据表? 你是疯了

新手上路,请多包涵

我们来假设 他是按月自动建表,每个表的数据超多

这样来进行搜索

查询的时候 联表合并查询呗
动态生成查询语句

这表分的,也是惊天动地

新手上路,请多包涵

日志型记录表是这样设计的,频繁的插入会锁定查询操作。在linux可以写下shell脚本统计pv访问量。

哥 这是分表思想指导建的吗?

其实我觉得看用户场景的,如果一天的数据真的是千百万行级别的,分天制造表也不见得是一个糟糕的决定。

像这种统计用日志型数据我建议用mongodb之类的nosql数据库。现在mysql和mongodb相结合是一个挺常用的方案。

使用information_schema库的tables表查询毫无压力

SELECT SUM(TABLE_ROWS) FROM information_schema.`TABLES` WHERE TABLE_NAME LIKE "pv_%"  AND LEFT(CREATE_TIME, 10)="2015-05-07"
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题