我有一個包含1,000,000條記錄的表,我正在運行一條刪除〜700k行的語句。自動增量指數當然仍然是1,000,001。之後的最高主鍵例如40,000。我應該重置表索引/刪除多行後優化嗎?
經過這麼大的刪除行後,我應該手動將索引設置回40,001或以任何方式優化表?或者,在插入新行並在之後的select語句中使用索引(就速度而言)時,MySQL是否會關心這個巨大的差距?
我有一個包含1,000,000條記錄的表,我正在運行一條刪除〜700k行的語句。自動增量指數當然仍然是1,000,001。之後的最高主鍵例如40,000。我應該重置表索引/刪除多行後優化嗎?
經過這麼大的刪除行後,我應該手動將索引設置回40,001或以任何方式優化表?或者,在插入新行並在之後的select語句中使用索引(就速度而言)時,MySQL是否會關心這個巨大的差距?
MySQL的manual說:如果你 刪除了表的一大部分
OPTIMIZE TABLE應使用 或者,如果你已經做了很多更改爲 表可變長度行
但不要重置主鍵,它可以搞砸了。 INT數據類型(大概)有很大的增長空間,從1M增長。
在查詢速度方面,不要緊的索引值是否爲1 000 000或1 000 000 000
使用OPTIMIZE TABLE之後的MySQL有助於確定如何最好/最快的查詢[執行,例如使用索引還是隻是表掃描?它使用所謂的統計來做到這一點,因此調用OPTIMIZE TABLE基本上給它一個提示,即你已經做出了重大改變。
重複使用身份證號碼絕不是一個好主意,除非您確實非常少用可用ID。 – 2011-02-04 14:44:59