内容一样的数据,32万条。
MYISAM 占12M
INNODB 占 30M
MEMORY 占 600M为什么MEMORY 引擎要点那么大的空间?????

解决方案 »

  1.   

    因为MEMORY引擎数据全在内存  不存硬盘
      

  2.   

    如果希望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;
      

  3.   

    我估计,主要是因为memory使用hash索引,这个比较耗空间,另外除了percona,其它版本的mysql都把vachar转换成char,这样你的varchar字段就多了很多空白空间。
      

  4.   

    因为memeory引擎的数据都在内存里存放,所以把它设置相对大一些。