1.列編輯
1.1.首先通過以下sql查詢出所有按日分表的表名
select
table_name
from
information_schema.
tables
where
table_schema =
'bianmin_trade'
and table_name like
'bill_20%'
;
1.2.通過文字工具(notepad++)自帶的列編輯工具、進行批量編輯
優點是:sql語句比較簡單直觀,容易審核
缺點是:按日分表,這樣就會照成大量的sql,顯得很繁瑣。
場景:適合與生產環境執行;
2.通過mysql儲存過程進行實現:
/**判斷儲存過程是否存在,否則刪除*/
drop
procedure
ifexists batchupdate;
/**宣告儲存過程*/
create
procedure batchupdate(
)begin
declare tablename varchar(20
)default'';
declare done int
default0;
declare tablenames cursor
forselect table_name from information_schema.
tables
where table_schema=
'bianmin_trade'
and table_name like
'bill_20%'
;declare
continue
handler
fornot found set done =1;
open tablenames;
repeat
fetch tablenames into tablename;
ifnot done then
set@sql
=concat(
'alter table '
,tablename,
' add payment_type tinyint(2) not null default 3 comment "繳費型別"; ');
prepare stmt from
@sql
;execute stmt;
endif
; until done end
repeat
;close tablenames;
end;
/**執行儲存過程*/
call batchupdate();
/**刪除儲存過程*/
drop
procedure batchupdate;
優點是:sql比較簡潔
缺點是:加大了審核難度,容易存在安全風險。
場景:適合測試環境執行;
mysql分表分庫實現 MySql分表分庫思路
一.資料庫瓶頸 1.1io瓶頸 第一種 磁碟讀io瓶頸,熱點資料太多,資料庫快取放不下,每次查詢時會產生大量的io 分庫和垂直分表 第二種 網路io瓶頸,請求的資料太多,網路頻寬不夠 分庫 1.2cpu瓶頸 第一種 sql問題,如sql中包含join,group by,order by,非索引字段條...
mycat實現mysql分庫分表
1.mycat介紹 mycat是乙個開源的分布式資料庫系統,是乙個實現了mysql協議的伺服器,前端使用者可以把它看作是乙個資料庫 用mysql客戶端工具和命令列訪問,而其後端可以用mysql原生協議與多個mysql伺服器通訊,也可以用jdbc協議與大多數主流資料庫伺服器通訊,其核心功能是分表分庫,...
mysql 分表實現方法詳解
如果你需要進行mysql分表了我們就證明你資料庫比較大了,就是把一張表分成n多個小表,分表後,單錶的併發能力提高了,磁碟i o效能也提高了。併發能力為什麼提高了呢,因為查尋一次所花的時間變短了,如果出現高併發的話,總表可以根據不同的查詢,將併發壓力分到不同的小表裡面 什麼是分表,從表面意思上看呢,就...