我有一个包含10亿行的表,固定行格式并在mysql中使用myisam引擎。我正在考虑对表进行整理,但这种开发需要时间。有没有提高性能的临时解决方案?
答案 0 :(得分:0)
你可以看看mysql分区。 http://dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html
它允许您在对查询透明的文件系统中分发单个表的部分
答案 1 :(得分:0)
根据你的评论,如果“插入/选择比率= 100:1”是这种情况,那么我看不出有任何理由在表上有索引(除了主键索引,如果有的话)。它会进一步减慢插入速度。
此外,如果您可以将插入排队到此表,那么您可以尝试创建内存表(http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html)并将所有插入指向表格,这将更快,然后执行批量插入/定期刷新到基于myisam引擎的表。
此外,您可以在您拥有的4个特定列上划分表(如果有任何好的候选者),或者选择基于散列的分区(如果您找不到)。我不确定你为什么说分片会占用开发时间。您也可以对现有的非分区表进行分区。 http://forums.mysql.com/read.php?106,264106,264110