我在  debian系统下 装的mysql   数据库表插入100万条数据    该表设置了一个主键索引,一个组合索引包含四列。
结果:数据文件  .MYD 比  索引文件.MYI 还要大。能解释一下吗?

解决方案 »

  1.   

    数据文件  .MYD 比  索引文件.MYI 还要大 这很正常啊。比如你表中字段为  id, f1,f2,f3,f4,f5,f6,f7,f8,f9 , 索引为 f1,f2,f3,f4, 在索引中只需要保存这四列+6字节的一个指针。当然小
      

  2.   

    不好意思 是说反了  呵呵  是索引文件比数据文件大   
    比如说:oracle.MYD 100M     oracle.MYI就是120M
      

  3.   

    楼主到现在也没提供表的信息,让别人怎么猜呢?请提供以下信息。
    desc yourTable;
    show index from yourTable;
      

  4.   

    CREATE TABLE `oracle` (
      `seq` BIGINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
      `in_db_t` BIGINT(8) UNSIGNED DEFAULT NULL COMMENT ,
      `op_t` BIGINT(8) UNSIGNED DEFAULT NULL COMMENT ,
      `tcq_id` TINYINT(1) UNSIGNED DEFAULT NULL COMMENT ,
      `svr_type` TINYINT(1) UNSIGNED DEFAULT NULL COMMENT ,
      `org_type` TINYINT(1) UNSIGNED DEFAULT NULL COMMENT ,
      `imp_type` TINYINT(1) UNSIGNED DEFAULT NULL COMMENT ,
      `alarm_type` TINYINT(1) UNSIGNED DEFAULT NULL COMMENT ,
      `op_ip` INTEGER(4) UNSIGNED DEFAULT NULL COMMENT ,
      `s_mac` BIGINT(8) UNSIGNED DEFAULT NULL COMMENT ,
      `d_mac` BIGINT(8) UNSIGNED DEFAULT NULL COMMENT ,
      `svr_ip` INTEGER(4) UNSIGNED DEFAULT NULL COMMENT ,
      `clt_ip` INTEGER(4) UNSIGNED DEFAULT NULL COMMENT ,
      `s_port` SMALLINT(2) UNSIGNED DEFAULT NULL COMMENT ,
      `d_port` SMALLINT(2) UNSIGNED DEFAULT NULL COMMENT ,
      `u_name` VARCHAR(16) COLLATE gbk_bin DEFAULT NULL COMMENT  ,
      `db_name` VARCHAR(16) COLLATE gbk_bin DEFAULT NULL COMMENT  ,
      `op` TINYINT(1) UNSIGNED DEFAULT NULL COMMENT ,
      `f_id` BIGINT(8) UNSIGNED DEFAULT NULL,
      `f_pos` INTEGER(4) UNSIGNED DEFAULT NULL,
      `warn_act` TINYINT(1) UNSIGNED DEFAULT NULL COMMENT  ,
      `attack_method` TINYINT(1) UNSIGNED DEFAULT NULL COMMENT  ,
      `ent_cls` TINYINT(1) UNSIGNED DEFAULT NULL COMMENT  ,
      `warn_lv` TINYINT(1) UNSIGNED DEFAULT NULL COMMENT  ,
      `rul_id` SMALLINT(2) UNSIGNED DEFAULT NULL COMMENT  ,
      `content` VARCHAR(255) COLLATE gbk_bin DEFAULT NULL COMMENT  ,
      `sid` BIGINT(8) UNSIGNED DEFAULT NULL COMMENT  ,
      PRIMARY KEY (`seq`),
      KEY `newIndex5` (`op_t`, `clt_ip`, `op`, `content`)
    )ENGINE=MyISAM
    AUTO_INCREMENT=71486115 CHARACTER SET 'gbk' COLLATE 'gbk_bin';
      

  5.   

    check table 
    analyze table 一下看看,通过这些命令可以压缩一下INDEX中的空间,比如有些行删除了INDEX中的位置并未释放。