mysql如何為大表新增字段或索引
問題
mysql 為大表增加或增加索引等操作時,直接操作原表可能會因為執(zhí)行超時而導致失敗。
解決辦法如下。
解決辦法
(1)建新表-復制表A 的數(shù)據(jù)結構,不復制數(shù)據(jù)
create table B like A;
(2)加字段或索引-表B加上新字段或索引
(3)導數(shù)據(jù)到新表-把原有數(shù)據(jù)導入新表
- 未新增字段時
insert into B select * from A [where 條件]
- 添加了新字段時。
- 假設添加字段名為data_code(默認值為空),且字段位于id之后
insert into B select id, '' data_code, 其他舊字段 from A [where 條件]
數(shù)據(jù)量達到幾千萬時,可以添加where 條件,分批將數(shù)據(jù)導入到新表。防止數(shù)據(jù)導入超時。
(4)改表名-修改表A 的名稱為A_old,修改B表的表名為A
備注
- (1)MySQL查詢一個表中的所有字段的方法
select CONCAT(COLUMN_NAME ,',') from information_schema.COLUMNS where table_name = '表名' and table_schema = '庫名';
- (2)可以在idea中的database上執(zhí)行sql,上面可以設置執(zhí)行超時時間。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
MySql安裝與配置方法(MySQL添加用戶、刪除用戶與授權)
這篇文章主要介紹了MySql安裝與配置方法(MySQL添加用戶、刪除用戶與授權)的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-08-08MySQL 索引的優(yōu)缺點以及創(chuàng)建索引的準則
這篇文章主要介紹了MySQL 索引的優(yōu)劣以及創(chuàng)建索引的準則,幫助大家更好的理解和使用MySQL 索引,感興趣的朋友可以了解下2020-09-09idea連接mysql數(shù)據(jù)庫失敗的幾種解決方案
我們在學習Mybatis時需要連接Mysql數(shù)據(jù)庫,使用IDEA無法連接mysql數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關于idea連接mysql數(shù)據(jù)庫失敗的幾種解決方案,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-06-06mysql?亂碼字符?latin1?characters?轉換為?UTF8詳情
這篇文章主要介紹了mysql?亂碼字符?latin1?characters?轉換為?UTF8詳情,文章基于MySQL的相關資料展開詳細內容。需要的小伙伴可以參考一下2022-04-04從創(chuàng)建數(shù)據(jù)庫到存儲過程與用戶自定義函數(shù)的小感
從創(chuàng)建數(shù)據(jù)庫到存儲過程與用戶自定義函數(shù)的小感,深入的學習mysql2011-09-09