我有一個包含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 –