我需要创建一个包含两个属性的表: id 和 author 。这两个属性构成了复合键。此外,我需要在作者字段上执行索引搜索。 因此,我使用以下语句创建表:
CREATE TABLE IF NOT EXISTS authors(author VARCHAR(100)NOT NULL,id VARCHAR(200)NOT NULL,INDEX USING BTREE(author,id),PRIMARY KEY(author,id))ENGINE = MYISAM;
现在,当我尝试使用JDBC插入大约450万条记录时,插入速度最终变得非常慢。 id 属性是指由相关作者创建的出版物。一位作者与几个ID相关,反之亦然。相同id值的平均数量低于相同作者值的数量。 因此,我使用交换属性测试了相同的过程。在这种情况下,插入速度几乎保持不变。 有没有办法优化表格以获得性能? 我不太清楚MYISAM如何管理索引复合键。可能是平衡的过程就是原因......
提前致谢!
答案 0 :(得分:0)
我注意到一些问题:
完成这些更改后,您的索引将采用简单的数字类型,插入速度应该很好。