免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3052 | 回复: 12
打印 上一主题 下一主题

innodb的存储引擎是不是很占空间? [复制链接]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-01 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-07 09:40 |只看该作者 |倒序浏览
我看了一下我的mysql,里面myisam表有几千个,innodb表只有几十个

myisam的表文件加起来总共才100多M

ibdata文件我看了一下,已经有100M了

几十个表就占了100M,这个是为什么呢,是不是innodb的方式要比MYISAM占磁盘空间??
ibdata文件里是不是除了数据还保存了其他东西?有没有办法把它缩小一点呢

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-01 06:20:00
2 [报告]
发表于 2009-10-07 09:43 |只看该作者
不好意思看错了,myisam的总共占200多M

不过,myisam的数据库有50多个,innodb的才5,6个,2:1的占用比例也还是不对劲啊

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
3 [报告]
发表于 2009-10-07 10:58 |只看该作者
那要看你存的什么记录
记录的多少问题了

这不是引擎的问题

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-01 06:20:00
4 [报告]
发表于 2009-10-07 13:04 |只看该作者
就是说,我现在遇到的这个情况,应该是innodb的表里存了很多东西是吧

如果都存相同的数据,占用磁盘空间应该是差不多的吧

论坛徽章:
0
5 [报告]
发表于 2009-10-07 18:38 |只看该作者
innodb的索引也是一个占空间的地方,每一个索引都会把主键带上.
比如
CREATE TABLE `u` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `us` mediumint( unsigned NOT NULL,
  `ty` tinyint(3) unsigned NOT NULL,
  `ta` tinyint(3) unsigned NOT NULL,
  `su` tinyint(3) unsigned NOT NULL,
  `ch` varchar(14) NOT NULL,
  `it` int(10) unsigned NOT NULL,
  `mo` int(10) unsigned NOT NULL,
  `st` tinyint(3) unsigned NOT NULL,
  `ac` int(10) unsigned NOT NULL,
  `de` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `a` (`ac`),
  KEY `i` (`it`),
  KEY `u` (`us`,`ac`),
  KEY `d` (`de`),
  KEY `t` (`ta`,`su`),
  KEY `t_a` (`ta`,`ac`)
) ENGINE=InnoDB
索引a,i,u,d,t,t_a都会把id放进去.
你可以试试
explain select id from u where de = 3
他会只读索引文件而不会去读数据返回结果

论坛徽章:
0
6 [报告]
发表于 2009-10-08 09:03 |只看该作者
innodb的索引是把表的实体记录也附带到索引树节点中,占空间也就在所难免了

论坛徽章:
0
7 [报告]
发表于 2009-10-08 10:51 |只看该作者

回复 #6 bs 的帖子

这样做也是为了访问数据的时候更快速

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
8 [报告]
发表于 2009-10-08 10:55 |只看该作者
速度和空间都要有取舍的

论坛徽章:
0
9 [报告]
发表于 2009-10-08 13:06 |只看该作者
原帖由 眸冷骨肋 于 2009-10-8 10:51 发表
这样做也是为了访问数据的时候更快速


这个快是有条件且相对的,应该说不得不做
确切说锁机制,并发性决定

论坛徽章:
0
10 [报告]
发表于 2009-10-09 16:21 |只看该作者
一般来说相同的数据innodb比myisam占用空间要大1.5倍吧。我的数据库大约是这样子的。

同样的数据,同样的结构导到myisam就100M,innodb就150M
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP