我用InnoDB建表,程序输入数据,使用事务提交, idbdata 数据文件超级大. 我用InnoDB建表,用java程序输入数据,因为数据量很大..所以需要同时运行很多个程序.程序当中用到事务提交!(--用事务可以减少系统消耗)但是 idbdata 数据文件超级大.要不了3个小时..就39个G...为什么啊?是不是数据库把事务给记录了下来?可以不可以不记录事务?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 NO,ibdata 为innodb引擎的存储数据与索引的数据文件ib_logfile0与ib_logfile1为innodb引擎使用的日志文件... 即 ibdata 中为表中的数据,非日志 不可能啊??怎么会有这么大啊?我就10个表,,name varchar(10) ,mediumText1个表最多封顶 15W记录...也就100W多一点 medium数据不到!有的mediumText会很短.能 idbdata 数据文件超级大估计和你的并发进程有关,并且你又用了事务(事务并不是在所有的时候都消耗资源少)这样innoDB会产生很多锁和快快照。 optimize 一下看看文件尺寸有没有被释放。 innoDB好象不能通过optimize 来释放磁盘文件中的空隙,好象只能通过倒出再建innodb文件再倒入实现.不知道还有没有更好的办法了。 1. 用mysqldump等工具导出数据2. 停止 mysqld3. 删除ibdata*, ib_logfile* 文件4. 重新启动 mysqld(这时mysqld就会自动创建 idbdata*, ib_logfile* 文件)5. 将到出来的数据导回去,体积才会减小。 ibdata 里面存放的是数据和UNDO LOG.39个G也不算大。你尽量减少你事务的SQL语句数量。那么UNDO LOG就越来越少。 MySQL的事务建议不要用 ,不是很好 不成熟 关于mysql存储过程的问题 对于数据库中动态字段应该怎么设计? mysql临时表的问题 欣喜的发现 MySql 功能太强了! 散分 急!建表过程中使用外关键字REFERENCES却得不到想要的效果!! 请问使用mysql时,大家都用什么样的建模工具呢? PostgreSQL的Function返回Select的结果集如何做?谢谢! 如何修改一条一个不定值的记录? 查询结果计算后送到另一个查询的SQL的语句 c3p0这样关闭连接是否正确 获取不到今天的数据 MYSQL:alter table 表名 add primary key(列名) 这个语句执行后无法设定主键
ibdata 为innodb引擎的存储数据与索引的数据文件
ib_logfile0与ib_logfile1为innodb引擎使用的日志文件...
怎么会有这么大啊?
我就10个表,,
name
varchar(10) ,mediumText
1个表最多封顶 15W记录...
也就100W多一点 medium数据不到!有的mediumText会很短.能
1. 用mysqldump等工具导出数据
2. 停止 mysqld
3. 删除ibdata*, ib_logfile* 文件
4. 重新启动 mysqld(这时mysqld就会自动创建 idbdata*, ib_logfile* 文件)
5. 将到出来的数据导回去,体积才会减小。
39个G也不算大。你尽量减少你事务的SQL语句数量。那么UNDO LOG就越来越少。