Mysql按日分表如何實現批量修改表結構

2021-10-09 18:59:48 字數 1655 閱讀 2324

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效能也提高了。併發能力為什麼提高了呢,因為查尋一次所花的時間變短了,如果出現高併發的話,總表可以根據不同的查詢,將併發壓力分到不同的小表裡面 什麼是分表,從表面意思上看呢,就...