為了提公升資料庫的查詢速度需要在資料表中的字段上新增索引,但是表中的資料量很大的時候,直接新增索引會導致資料庫崩潰或者鎖表時間太長而影響對資料庫的操作
建立一張臨時的新錶,複製舊表的結構及其索引
create
table new_table like old_table;
新錶中新增新增的字段,增加索引
alter
table
`table_name`
addcolumn
`num`
int(10)
notnull
default
0after
`addtime`
;alter
table
`table_name`
addindex
`num`
(`num`
);
複製舊表的資料到新錶
insert
into new_table(id,name,content,addtime)
select id,name,content,addtime from old_table;
注意:執行這步操作的時候因為資料量比較大會非常耗時,之後進來的資料也需要匯入到這張新錶中,所以盡量選擇低峰時間進行操作,以減少資料差距
5. 修改舊表的名字,然後修改新錶的名字為舊表的名字
需要做好資料的備份,使用一段時間後沒問題了再進行舊表的刪除
oracle大資料表 如何建立索引
大資料表,按某欄位t varchar型的時間字段 分割槽,乙個月乙個分割槽。有常用業務欄位a和b 其它欄位並不重要 欄位a值的重複率不高,b的重複率稍高。建有索引1 a,組合索引2 t,b。對該錶的常用查詢有兩種 通過條件t a查詢,通過條件t b查詢。原來應用一直正常,近期由於其它分割槽表查詢索引...
mysql大資料表匯入匯出
客戶那一台流量分析裝置需要給更換成新裝置,但要求保留之前的流量分析資料,檢視了一下流量分析表情況,發現有幾張分鐘粒度的資料表資料量達到幾億條以上,資料庫使用的是mysql,使用mysql 的匯入匯出工具mysqldump是沒希望了,只能把幾個大資料量的表挑出來單獨處理,小資料量的表就用mysqldu...
MySQL中大資料表增加字段,增加索引實現
普通的新增欄位sql alter table table name addcolumn num int 10 not null default 0after addtime 普通的新增索引sql alter table table name addindex num num 但是線上的一張表如果資料...