MySQL中的数据量太大了,怎么办

fyyzt 2008-12-10 04:46:31
公司的这套产品已经有2-3年的时间了,我刚来,公司的老员工都走完了,留下了一大堆的问题,没办法,只能一点一点解决,但关于Mysql数据量太的问题,本人整了几天,实在是没有头绪,还请群中的各位好友帮忙看下,如何解决。
我的Mysql中有几张表的记录条数大概在十几万条记录,每次我用mysqldump命令做备份的时候,Mysql的数据库服务器自动停止,而当用mysqldump备份单张表的时候,也出现这中情况?像这样后续的数据,客户还在继续向数据库中添加数据,这样不能备份,真怕有一天,数据库坏掉,那连还原都没法还原了,(我现在都是把Mysql整个文件夹都拷贝一下,做备份,但觉的这样不好,现在Mysql文件夹的大小都在600多M左右)还望大侠们看到后,能提些意见,我该怎么办!叩谢了。
...全文
2583 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvsen 2009-05-09
  • 打赏
  • 举报
回复
我的表都9千万多条了,没有任何问题
slimboy123 2008-12-24
  • 打赏
  • 举报
回复
你那个表才几十万,我们现在的好几个表都是几百万数据,用mysqldump没有问题啊
cym64039 2008-12-24
  • 打赏
  • 举报
回复
十几万条记录确实太少了,二千多万的数据我还跑的欢呢,可能是你的表结构设计不好。备份时把应用程序先停一下,看看效果
懒得去死 2008-12-23
  • 打赏
  • 举报
回复
那你就想办法把这个表移动到其他实例上。然后把内容搞出来,再到你现有的服务器上生成数据吧。
fyyzt 2008-12-23
  • 打赏
  • 举报
回复
前段时间给设计这个架构的架构师打电话,问起了这块,他说有可能是表的索引的问题,提到将索引优化一下,还有可能是表中的主键重复了(表要是设置了主键,再插入的时候,记录还能重复吗?),他建议通过自己写程序,将数据抽出来,然后再处理。可是现在抽取表数据的时候,一抽这张表,mysql就挂掉,真的不知道怎么办了。现在已经确定了,数据库中就是这一张表的缘故,导致了服务挂掉,其他的都可以抽出来数据。
kfjfox 2008-12-18
  • 打赏
  • 举报
回复
学习
cdshrewd 2008-12-17
  • 打赏
  • 举报
回复 1
优化一下表吧,你的数据量真的不大,对于mysql5.0以上版本少于1000W不要说数据量大,optimize table tablename试试简单可行
tommy9802 2008-12-15
  • 打赏
  • 举报
回复
可以做一下数据转换,估计比你平时花在维护上面和问题处理上面的时间要少,而且是一劳永逸
tommy9802 2008-12-15
  • 打赏
  • 举报
回复
建议如果数据量过大的话,就使用PostgreSQL数据库,也是开源的关系型数据库,处理大容量数据比mysql强很多,可以与mssql媲美

而且支持视图,事物,存储过程等
懒得去死 2008-12-11
  • 打赏
  • 举报
回复
你那几个参数设的可真是。。。
fyyzt 2008-12-11
  • 打赏
  • 举报
回复
发现了一种很奇怪的现象
我原先的数据从46万多条删到455222时,导出提示在表451520行,与数据库失去链接,导出的文件大小65.4 MB
我又删除掉了4千条记录,到451222时,在导出提示在表447558行,与数据库失去链接,导出的文件大小65.4 MB
我又删除掉了4千条记录,到447222时,在导出提示在表443525行,与数据库失去链接,导出的文件大小65.4 MB
这似乎很有规律,导出的文件大小一致,但是总是少4千多数据,总是导出到总记录的99.17%的时候,服务就停止了
fyyzt 2008-12-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 whalefish2001 的回复:]
如果是Linux,写shell脚本,让他夜里2点到3左右执行。
如果是 WIndows,做个应用程序,写任务。让他夜里2点到3左右执行。
如果是其他OS,按照上面的思想,作吧。
[/Quote]
whalefish2001可能理解错了,现在主要是为了解决数据不能导出的问题,或者是查询这张表如果数据量大的话,就会出现mysql服务停止,这个系统是单机版的,每个单位要经常的导出数据,进行上报。
fyyzt 2008-12-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 withwind_ 的回复:]
MS的access最大都能到1G 你的600多M 还小呢,修改下MYsql的内存使用大小。
[/Quote]

我按照你的试了试,还是不行,系统就那一张表的数据量大,是46万多条数据,我用mysqldump导出时,运行到27秒的左右,mysql的服务停止,此时导出的文件大小是190多M,我又试了试单单导出这一张表或者用select不加任何条件语句查询这张表,也出现这种情况,像这种情况我该怎么办?

我my.ini重要的设置如下:
max_allowed_packet=256M
wait_timeout =60
query_cache_size=52M
table_cache=256
tmp_table_size=16M
thread_cache_size=51
whalefish2001 2008-12-11
  • 打赏
  • 举报
回复
如果是Linux,写shell脚本,让他夜里2点到3左右执行。
如果是 WIndows,做个应用程序,写任务。让他夜里2点到3左右执行。
如果是其他OS,按照上面的思想,作吧。
fcoolx 2008-12-10
  • 打赏
  • 举报
回复
10多万的量很小啊 没事儿
mysqldump 可以的 没什么问题
withwind_ 2008-12-10
  • 打赏
  • 举报
回复
MS的access最大都能到1G 你的600多M 还小呢,修改下MYsql的内存使用大小。
fyyzt 2008-12-10
  • 打赏
  • 举报
回复
我这几张表中,统计了一下,最大的数据量是46万条的数据表,我单单用select * from 表名 into outfile '文件路径' 用这个语句单单导出表数据的时候,也会出现数据导出到一半的时候,Mysql服务自动停止
fyyzt 2008-12-10
  • 打赏
  • 举报
回复
可是我用mysqldump之后,mysql的服务老停止怎么办?总是没导出来就停止了,怎么才能让他不停止,我用mysql administrator工具导出数据库的时候,也是这样
懒得去死 2008-12-10
  • 打赏
  • 举报
回复
你的数据太小了。不要怕。
暂时用mysqldump可以解决问题。

56,679

社区成员

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

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