mysql創(chuàng)建數(shù)據(jù)庫 mysql加索引需要多長時間?
mysql加索引需要多長時間?32核心,30多G 內(nèi)存,一千萬的條目在時間上建立非聚集索引,用了 7 分鐘。一億的話,我這估計要大于70分鐘。聚集索引時間更長。 這個需要索引排序,建立分支索引復合B樹
mysql加索引需要多長時間?
32核心,30多G 內(nèi)存,一千萬的條目在時間上建立非聚集索引,用了 7 分鐘。一億的話,我這估計要大于70分鐘。聚集索引時間更長。 這個需要索引排序,建立分支索引復合B樹。一般海量數(shù)據(jù)不如新建立表,建立好索引,然后逐批導入數(shù)據(jù)。差勁點的機器,一億數(shù)據(jù)建立索引基本就是死機或是僵尸狀態(tài)。只能慢慢的等了,一天都不行,就上邊那方法。索引跟類型關系很大,一般定長字段比變長字段簡單,IO消耗小,時間節(jié)省,復合索引變長越多就越復雜,其次就是 一表多索引,這種情況 會衍生各種存儲索引結構,就更費時間了。表有多少數(shù)據(jù)頁,多少文件,每頁多少槽位都會影響時間。
mysql中,創(chuàng)建索引很慢,怎么解決?
28萬條數(shù)據(jù)量不是很大,字段稍微有點多,如果不加WHERE條件的話,數(shù)據(jù)庫判定是查詢所有數(shù)據(jù)庫,而加了WHERE條件時,數(shù)據(jù)庫判定要去詳細的查找某個數(shù)據(jù),所以速度自然會慢,建立索引可以解決您的問題;
CREATEINDEX索引名ON表名(WHERE條件用到的列名,如有多個就以逗號分隔)
這次在去WHERE的時候就會快很多