[SQL ] MySQL 大型資料表建立索引

看板Database (資料庫)作者 (殘雪)時間6年前 (2018/04/19 16:57), 編輯推噓1(1013)
留言14則, 4人參與, 6年前最新討論串1/1
資料庫名稱: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

04/19 22:20, 6年前 , 1F
先建索引再匯資料的話不是每筆INSERT都要去改INDEX嗎...
04/19 22:20, 1F

04/19 22:24, 6年前 , 2F
你講的蠻籠絡的 基本上建索引就是整個爬過一次的行為
04/19 22:24, 2F

04/19 22:24, 6年前 , 3F
有多少資料就要爬多少資料 這個免不了的
04/19 22:24, 3F

04/19 22:25, 6年前 , 4F
只是有些剛好符合某種特定情況下有機會優化
04/19 22:25, 4F

04/19 22:26, 6年前 , 5F
籠統 ORZ
04/19 22:26, 5F

04/19 22:34, 6年前 , 6F
比如分區表,比如並行 這些都是在特定條件下可以用的招
04/19 22:34, 6F

04/19 22:35, 6年前 , 7F
可是用的時機不對就會讓效能更慘 所以也不是都通用
04/19 22:35, 7F

04/19 23:05, 6年前 , 8F
看到MyISAM就GG了,建議改成InnoDB,可以做Online DDL
04/19 23:05, 8F

04/19 23:06, 6年前 , 9F
create index的速度還滿快的(但也要看硬體速度啦)
04/19 23:06, 9F

04/20 10:08, 6年前 , 10F
感謝兩位大大回覆,一些必要的動作看來是不能省的
04/20 10:08, 10F

04/20 10:09, 6年前 , 11F
我會改成再試試先匯完資料後建立索引
04/20 10:09, 11F

04/20 10:12, 6年前 , 12F
這資料庫是近期才交到我手上負責維護,當時已經是
04/20 10:12, 12F

04/20 10:13, 6年前 , 13F
MyISAM了,大概不方便改@@
04/20 10:13, 13F

04/26 15:19, 6年前 , 14F
先匯再建
04/26 15:19, 14F
文章代碼(AID): #1Qs5dmIG (Database)
文章代碼(AID): #1Qs5dmIG (Database)