大表建立索引的注意事項

2021-08-29 03:24:42 字數 619 閱讀 9915

一、注意事項:

首先,應當考慮表空間和磁碟空間是否足夠。我們知道索引也是一種資料,在建立索引的時候勢必也會占用大量表空間。因此在對一大表建立索引的時候首先應當考慮的是空間容量問題。

其次,在對建立索引的時候要對錶進行加鎖,因此應當注意操作在業務空閒的時候進行。

二、效能調整方面:

首當其衝的考慮因素便是磁碟i/o。物理上,應當盡量把索引與資料分散到不同的磁碟上(不考慮陣列的情況)。邏輯上,資料表空間與索引表空間分開。這是在建索引時應當遵守的基本準則。

其次,我們知道,在建立索引的時候要對錶進行全表的掃瞄工作,因此,應當考慮調大初始化引數db_file_multiblock_read_count的值。一般設定為16或更大。

再次,建立索引除了要進行全表掃瞄外同時還要對資料進行大量的排序操作,因此,應當調整排序區的大小。

9i之前,可以在session級別上加大sort_area_size的大小,比如設定為100m或者更大。

9i以後,如果初始化引數workarea_size_policy的值為true,則排序區從pga_aggregate_target裡自動分配獲得。

最後,建立索引的時候,可以加上nologging選項。以減少在建立索引過程中產生的大量redo,從而提高執行的速度。

mysql 大表新增索引注意事項

linxu top命令 url 我的表記錄8674132,表大小大約2g 新增主索引 alter table user add primary key id 新增普通索引 alter table user add index name 新增索引的時候要缺確保記憶體足夠,以我的來看,記憶體需要3g,磁...

MySQL建立索引的注意事項

對於大資料量的 尤其是百萬行以上的資料表,一定要對其建立索引,否則查詢速度極慢。參考後面的測試結果 建立索引時需注意 mysql的索引有兩種 單列索引 即在某一列上建索引 多列組合索引 即在多個列上建立同乙個索引 不像sql server分聚集索引,非聚集索引。如何建立單列索引 格式 create ...

lucene實時建立索引 注意事項

實時建立索引一直是我思考的問題,雖然現在這個問題還沒有圓滿解決,但是我總結出了一些注意事項,現在先記錄下來!第一,確保indexwriter只有乙個,建議做乙個靜態的indexwriter,只有乙個路徑去開啟和關閉!第二,確保只有一條執行緒去建立索引,因為lucene的索引檔案帶有自定義的鎖檔案,如...