分享到:
发表于 2009-05-18 16:54:00 楼主 | |
1. 数据文件载入内存,占用内存长度是表字段长度总和,还是实际数据长度总和 2. 表中定义了N长的一个字段,但是没有数据,为以后备用,这样的字段会占用内存吗 关于以上2个问题,在数据类型不同是否也会跟着变化呢? 请注意 以上说的是内存,不是磁盘空间。 这几天看了看源码,还没太明白。 抛砖引玉 总结2点。 InnoDB: 1. update 的时候 拷贝实际数据到buffer ,但是拷贝完,会移动buffer指针,移动长度为字段定义的长度(key->length) 2. select 的时候,拷贝数据是按照字段的定义的长度,而不是数据长度,但是 text 始终占用了1个长度。 3. 对于空字段没数据的,如果位置在表中间会占用buffer,若是在最后则不会占用buffer。 对于以上3个验证,修改源码(),将内容发送到 syslog 观察所得。 第一个修改的是ha_innodb.cc,2和3修改的是 row0sel.cc |
|
楼主热贴
个性签名:
|
针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员 、 查看帮助 或 给我提意见