我有一个包含10,000,000多行的数据库表,我正在创建一个新表。什么是最适合阅读的存储引擎类型?拥有10,000,000行数据库的最佳存储引擎
目前我使用:
$sql = "UPDATE `packages_unsorted` SET `acv_return_viadetails` = '0';";
然后选择记录:
$sql = "SELECT * FROM `packages_unsorted` WHERE `acv_return_viadetails` = '0' LIMIT 1000;";
我收集的主键id
到一个数组名为$ id和我处理记录和数据写入每1000行结束时需要导入一个CSV文件。 然后我和更新acv_return_viadetails领域:
$sql = "UPDATE `packages_unsorted` SET `acv_return_viadetails` = '1' WHERE `id` IN ('".implode("','",$ids)."') LIMIT 1000;";
由于上面表中只写我选择每次各个领域。我应该使用内存表还是使用其他类型的存储引擎来加快速度?还是还有其他的优化可以让我加速呢?
此外,什么将是一个合理的my.cnf这种操作配置。
感谢提前:)
如果你在调整你的MySQL安装寻找先进的技术,我会强烈建议http://www.mysqlperformanceblog.com /确定你可以做的所有调整。看不出为什么你不能只使用'InnoDb'并确保'acv_return_viadetails'具有'INDEX'。也许如果我们对数据集了解得更多一些,将它分解成更小的表或重新组织数据可能是有意义的。 –
谢谢,我会尝试Innodb,但我不能真正地分割数据,因为它是使用LOAD DATA INFILE的直接CSV导入 - 约90个字段* 10M行。 –
innodb - 聚集主键看到这里http://stackoverflow.com/questions/4419499/mysql-nosql-help-me-to-choose-the-right-one-on-a/4421601#4421601 –