请朋友们给我解释一下 呵呵 我在 debian系统下 装的mysql 数据库表插入100万条数据 该表设置了一个主键索引,一个组合索引包含四列。结果:数据文件 .MYD 比 索引文件.MYI 还要大。能解释一下吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数据文件 .MYD 比 索引文件.MYI 还要大 这很正常啊。比如你表中字段为 id, f1,f2,f3,f4,f5,f6,f7,f8,f9 , 索引为 f1,f2,f3,f4, 在索引中只需要保存这四列+6字节的一个指针。当然小 不好意思 是说反了 呵呵 是索引文件比数据文件大 比如说:oracle.MYD 100M oracle.MYI就是120M 楼主到现在也没提供表的信息,让别人怎么猜呢?请提供以下信息。desc yourTable;show index from yourTable; 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=MyISAMAUTO_INCREMENT=71486115 CHARACTER SET 'gbk' COLLATE 'gbk_bin'; check table analyze table 一下看看,通过这些命令可以压缩一下INDEX中的空间,比如有些行删除了INDEX中的位置并未释放。 一张表,某个字段值相等时,对其它字段值每两条记录作sum计算 为学生成绩评定分数等级 MySQL show variables的疑问 请问MySQL有没有类似MSSQL Server那样的查询分析器和企业管理器(自带或第三方),谢了。 如何在redhat linux9.0下启动mysql? 请问有没有带用户认证的PHPMyAdmin? mysql启动失败 请教:数据表怎么按每6小时时间段分组求平均数? 请教mysql的一个疑问 io写入很大 求大神支招,怎么给mysql打补丁 请wwwwb和ACMAIN_CHM来。 数据库检索优化
比如说:oracle.MYD 100M oracle.MYI就是120M
desc yourTable;
show index from yourTable;
`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';
analyze table 一下看看,通过这些命令可以压缩一下INDEX中的空间,比如有些行删除了INDEX中的位置并未释放。