用mysql数据库,有个表每天都会新增100--200w条数据

Kyle-soft 2010-02-06 06:35:11
曾经考虑从业务上减小该表数据量,但是不符合需求。现状就是每天都有起码100w条数据进入这个表,
对这个表的操作倒是很简单,只是做一个select * from tabA a,tabB b where a.id = b.id;
的sql但是由于数据量太大做这个操作太慢了。不知道有没有什么办法啊。
表的字段也不多大概10个。

优化,现在就只做了pk的index其他都没有做啊。


以前也听人说
什么垂直分割水平分割
什么用多个mysql集群只做查询用,insert另外做。什么的。

现在思路就是想从mysql这块做点优化。
从表这块做点优化。
不知道有人能提供点优化办法吗?


解决了放500分啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。感谢大家乐很头疼555
...全文
1353 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
flairsky 2010-02-22
  • 打赏
  • 举报
回复
每天一百,你不分表,想想一下一个月后的情况,什么数据库都不带这么玩。这还不排除每天100w这个增加量的增加。必须分表
Kyle-soft 2010-02-21
  • 打赏
  • 举报
回复
引用 18 楼 ljf_ljf 的回复:
如果数据太多,可以考虑按天或者周来进行影像和统计。之后把数据写到影相表中,从而减少数据统计计算。


好像mysql没有物化视图的概念
Kyle-soft 2010-02-21
  • 打赏
  • 举报
回复
引用 18 楼 ljf_ljf 的回复:
如果数据太多,可以考虑按天或者周来进行影像和统计。之后把数据写到影相表中,从而减少数据统计计算。


好像mysql没有物化视图的概念
Kyle-soft 2010-02-21
  • 打赏
  • 举报
回复
引用 18 楼 ljf_ljf 的回复:
如果数据太多,可以考虑按天或者周来进行影像和统计。之后把数据写到影相表中,从而减少数据统计计算。


好像mysql没有物化视图的概念
nil2000 2010-02-11
  • 打赏
  • 举报
回复
不知道mysql有没有物化视图的概念。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
XiaoGuaiMao 2010-02-11
  • 打赏
  • 举报
回复
转到oracleeeeeee
Kyle-soft 2010-02-11
  • 打赏
  • 举报
回复
由于需求可能无法改成您说的那样啊。否则要修改的太多了啊。用户已经投入使用了啊,开始没有预计到是这么大的数据量啊
Kyle-soft 2010-02-11
  • 打赏
  • 举报
回复
引用 18 楼 ljf_ljf 的回复:
如果数据太多,可以考虑按天或者周来进行影像和统计。之后把数据写到影相表中,从而减少数据统计计算。


由于需求可能无法改成您说的那样啊。否则要修改的太多了啊。用户已经投入使用了啊,开始没有预计到是这么大的数据量啊
Kyle-soft 2010-02-11
  • 打赏
  • 举报
回复
引用 16 楼 qiuyepiaoling 的回复:
我的神啊,你没有分页,筛选条件啊,一下子查询出几百万行  人家怎么看啊。


汗。。。

limit ?
ljf_ljf 2010-02-10
  • 打赏
  • 举报
回复
如果数据太多,可以考虑按天或者周来进行影像和统计。之后把数据写到影相表中,从而减少数据统计计算。
storyxsj 2010-02-10
  • 打赏
  • 举报
回复
1.首先应该调研一下用户的习惯,查询的频率多不多,时间范围主要集中是一天,一周还是一月内
确定一下优化的程度,数量级到达一定层次 只能在硬件和架构上找了

下面引ACMAIN_CHM,说的很对,如果感觉优化达不到目标,建议在架构上做改良
[操作慢是相对的,你可以试一下 select * from tabA; 和 select * from tabB;
select * from tabA a,tabB b where a.id = b.id;查询的速度再什么优化也不可能快于上面两个查询的时间总和。]

2.建merge表加快插入 stime分区加速查询 建index加速查询(反之加速插入)


3.如果这个时间仍不行
qiuyepiaoling 2010-02-10
  • 打赏
  • 举报
回复
我的神啊,你没有分页,筛选条件啊,一下子查询出几百万行 人家怎么看啊。
hitexam 2010-02-09
  • 打赏
  • 举报
回复
路过帮顶! 回复内容太短了!再祝大家新年快乐!
Kyle-soft 2010-02-09
  • 打赏
  • 举报
回复
引用 9 楼 acmain_chm 的回复:
你的查询主要是什么? 如果连任何 where 子句都没有,也谈不上什么优化了。
select 
filed1,
sum(filed2+filed3) as sumFiled
from
tabA
where
filed4>? and
filed5=? and
filed6=? and
stime<=? and
stime>=?
group by 1
order by 2
limit ?
Kyle-soft 2010-02-09
  • 打赏
  • 举报
回复
引用 9 楼 acmain_chm 的回复:
你的查询主要是什么? 如果连任何 where 子句都没有,也谈不上什么优化了。
select 
filed1,
sum(filed2+filed3) as sumFiled
from
tabA
where
filed4>? and
filed5=? and
filed6=? and
stime<=? and
stime>=?
group by 1
order by 2
limit ?

Sql基本都是这样的啊。。。。。。。。。。。。。。。。。。。。。
Kyle-soft 2010-02-09
  • 打赏
  • 举报
回复
select
filed1,
sum(filed2+filed3) as sumFiled
from
tabA
where
filed4>? and
filed5=? and
filed6=? and
stime<=? and
stime>=?
group by 1
order by 2
limit ?


Sql基本都是这样的啊。。。。。。。。。。。。。。。。。。。。。
黄_瓜 2010-02-08
  • 打赏
  • 举报
回复
两个id上加索引
提高硬件设备
ljf_ljf 2010-02-08
  • 打赏
  • 举报
回复
1)表分割(分开多个表来进行存储,但此方法不一定适合你的业务)
2)表分区(分开多个逻辑分区来存储,但MySQL版本一定要 5.1 或者以上)
3)历史数据转移(此方法不一定适合全表查询)
4)升级服务器
5)考虑使用群集
6)考虑是否转为其他数据;感觉到了处理千万级别数据时候,MySQL 无论在安全性和性能上都是大幅度下降。
ACMAIN_CHM 2010-02-07
  • 打赏
  • 举报
回复
你的查询主要是什么? 如果连任何 where 子句都没有,也谈不上什么优化了。
Kyle-soft 2010-02-07
  • 打赏
  • 举报
回复
还有什么好方法能处理
这种千万量级的数据啊?

每天100w 10天就1000万了。。。。。。。。。。。。。。。。。
真是太可怕了啊。
加载更多回复(7)

56,803

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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