最近,我发现其中一台服务器的磁盘 I/O 流量很高。由于某些诊断后在某些表上写入索引而导致的高 I/O。我做了几次评估测试,发现mysql在向具有大索引的表中插入记录时会占用大量写入。
索引列的数据类型是 varchar(15) 和 varchar(17) ,两者都是非唯一索引,如果我将 20000 条记录加载到具有 10000 条记录的表中,则磁盘上只有 80 次写入,而磁盘上有 1700 次写入时即使插入的记录数相同,表也会增长到 2000 万(在索引列上有大约 100 万个不同的值)。
引擎是 MyISAM。
增加索引的大小也会增加每次插入磁盘上的写入次数。
它是 BTREE 索引行为吗?我该如何解决这个问题?