看板 Database 關於我們 聯絡資訊
資料庫名稱:MySQL 資料庫版本:5.7 內容/問題描述: 我有數個筆數為10~40億左右的資料表(MyISAM引擎),想用其中某1或2個varchar類型 的欄位(有重複)建立索引,目的是為了將資料表根據該欄位的名稱匯出成多個小檔案 想問說有沒有什麼方法在現有的表上加快建立索引?(例如調my.ini裡的參數之類的?) 試過幾次create index,但看了建立的速度推測起碼都要好幾天... 以及,對於這樣規模的資料表,是先匯入資料再建立索引、還是先建立索引再匯入資 料會比較快呢?(目前在建新的資料表時是採用後者順序,但一樣很慢) 新手發問,懇請協助,謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.73.92 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1524128240.A.490.html
iFEELing: 先建索引再匯資料的話不是每筆INSERT都要去改INDEX嗎... 04/19 22:20
iFEELing: 你講的蠻籠絡的 基本上建索引就是整個爬過一次的行為 04/19 22:24
iFEELing: 有多少資料就要爬多少資料 這個免不了的 04/19 22:24
iFEELing: 只是有些剛好符合某種特定情況下有機會優化 04/19 22:25
iFEELing: 籠統 ORZ 04/19 22:26
iFEELing: 比如分區表,比如並行 這些都是在特定條件下可以用的招 04/19 22:34
iFEELing: 可是用的時機不對就會讓效能更慘 所以也不是都通用 04/19 22:35
jeamie: 看到MyISAM就GG了,建議改成InnoDB,可以做Online DDL 04/19 23:05
jeamie: create index的速度還滿快的(但也要看硬體速度啦) 04/19 23:06
espeondoug: 感謝兩位大大回覆,一些必要的動作看來是不能省的 04/20 10:08
espeondoug: 我會改成再試試先匯完資料後建立索引 04/20 10:09
espeondoug: 這資料庫是近期才交到我手上負責維護,當時已經是 04/20 10:12
espeondoug: MyISAM了,大概不方便改@@ 04/20 10:13
rockchangnew: 先匯再建 04/26 15:19