0
有一個數百萬行的表格。 我承諾以下查詢:如何優化將innodb作爲引擎添加到大表的關鍵字?
ALTER TABLE my_data ADD KEY `sex_birth` (`sex`, `birth`);
這需要38分44.53秒!
如何優化此運行速度?
有一個數百萬行的表格。 我承諾以下查詢:如何優化將innodb作爲引擎添加到大表的關鍵字?
ALTER TABLE my_data ADD KEY `sex_birth` (`sex`, `birth`);
這需要38分44.53秒!
如何優化此運行速度?
您無法真正使此查詢更快。但是你可以肯定地做一些事情,這樣你的應用程序就不會停止太久。
創建該表與其他一些名稱的副本,說my_data_alter
。在此表上運行alter。
你需要的所有更新的日誌/插入/刪除已運行的,自從你把拷貝到時間結束時,ALTER。然後你將不得不運行這些查詢到my_data_alter
。
這將是一種永無止境的循環,如果交易與臺發生的數量太大。
最後,您只需在單個查詢中重命名這兩個表。
我知道這會非常棘手。在非高峯時間做這種事情。
我建議你寫一些腳本,做這份工作對你..
這可能需要一段時間,但這種操作是相當罕見的,所以你只需要對付它。例如Twitter的人說,在他們的db中添加一個新的列需要2周的時間才能完成。 – 2013-05-05 09:00:19