memory 引擎为什么点那么大的空间?

tecs27 2013-03-01 03:02:28
内容一样的数据,32万条。
MYISAM 占12M
INNODB 占 30M
MEMORY 占 600M

为什么MEMORY 引擎要点那么大的空间?????
...全文
149 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2013-03-10
  • 打赏
  • 举报
回复
因为memeory引擎的数据都在内存里存放,所以把它设置相对大一些。
代码誊写工 2013-03-02
  • 打赏
  • 举报
回复
我估计,主要是因为memory使用hash索引,这个比较耗空间,另外除了percona,其它版本的mysql都把vachar转换成char,这样你的varchar字段就多了很多空白空间。
代码誊写工 2013-03-02
  • 打赏
  • 举报
回复
如果希望memory少用点儿,你最好用percona版本的mysql,另外指定ROW_FORMAT=DYNAMIC。 CREATE TABLE tbl (id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(4096) NOT NULL DEFAULT '', PRIMARY KEY (id)) ENGINE=MEMORY ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8;
代码誊写工 2013-03-02
  • 打赏
  • 举报
回复
是不是用了varchar类型?
rucypli 2013-03-01
  • 打赏
  • 举报
回复
因为MEMORY引擎数据全在内存 不存硬盘

56,686

社区成员

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

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