目前公司庫最大資料量在2千萬,明顯影響性能了。于是讓我搞搞架構,做個分庫分表的。
已經寫了demo,測驗沒啥問題。
那么關鍵問題來了。對于這一張張1千萬、2千萬的表,按照100萬為一個表,我用什么工具去分呢?
還是手動拷貝前面100萬,第二個100萬,第三個100????
感謝各位老鐵,很多年不玩CSDN,老賬號都沒了,積分也沒有多少。。。
uj5u.com熱心網友回復:
insert + delete 吧uj5u.com熱心網友回復:
創建磁區表--匯出原表資料-->新表名稱改為原表名-->插入資料uj5u.com熱心網友回復:
已經解決:對于幾百張表需要每個月新建一次:create table newTableName like oldTableName.
資料:insert insert into newTbleName values() select * from oldTableName limit m,n;
uj5u.com熱心網友回復:
這個一看不行的呀。。。

因為比如2千萬。分在10個庫,每個庫分200萬資料。目前200多張表了。。。手動肯定不行。。。
我用java寫了個程式。邏輯在樓上
用其他語言也一樣,或者寫存盤程序、腳本等等都可以。
uj5u.com熱心網友回復:
看你分庫分表規則,按照范圍、哈希?,通過select,insert分哇uj5u.com熱心網友回復:
寫個函式唄。uj5u.com熱心網友回復:
磁區表可以做過渡使用。如果想實作分表的話:
1、取主鍵的哈希值,在原有表上增加一個列,這個列為你要插入哪張表的表明列
2、存盤程序批量插入到新表里
create procedure xx()
begin
end
uj5u.com熱心網友回復:
創建磁區表 --> exchange --> 創建普通表 --> exchange寫成腳本的方式
uj5u.com熱心網友回復:
如果表不多, 用partition吧。表多了, 就只能insert into new_table from old_table limit的方式了。
uj5u.com熱心網友回復:
為什么不直接用資料庫自帶的磁區功能,何必這么麻煩呢,但是不管怎么分,都有先搞清楚,用什么欄位分。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/80878.html
標籤:MySQL
