資料庫分表

2021-09-23 10:14:40 字數 1452 閱讀 3661

create table table1 (   

`id` int(10) unsigned not null auto_increment,

`name` varchar(45) ,

primary key (`id`)

) engine=myisam;

create table table2 like table1;

//建立總表

create table tableall like table1;

alter table tableall engine=merge union=(table1,table2);

注意:在總表tableall中會出現主鍵重複的情況,可以建立只有乙個屬性的表,自增來生成唯一主鍵;也可以手動生成乙個id,實現主鍵唯一的目的,生成主鍵**鏈結

但是這種分表方法有弊端:不支援事務,比較麻煩!

create table table1 (   

`id` int(10) not null auto_increment,

`name` varchar(45) ,

primary key (`id`)

);

create table table2 like table1;

//建立檢視 (總表)

create or replace view tableall as

select * from table1

union

select * from table2;

主鍵同樣存在重複的問題:生成主鍵**鏈結

//分表:user_info_0、user_info_1、user_info_2   檢視:user_info

public static void createtable(jdbctemplate jdbctemplate, integer tablenum)

string tablename1 = tablename + "_%";

resultset rs = dbmetadata.gettables(null, null, tablename1, new string);

while (rs.next())

string sql2 = " create or replace view " + tablename + " as ";

for (int i = list.size() - 1; i >= 0; i--) else if (i == list.size() - 1)

}jdbctemplate.execute(sql2);

} catch (exception e)

}

資料庫分表策略

1 垂直劃分 將資料表中的某些字段提出,組成新的資料表。將群組id,id,id提出 組成gzm資料表,而將 群組,的詳細資訊單獨放在其他資料表中 在求取索引 關係時,運算元據庫效率更高。2 水平劃分 2.1物理上的水平切分 即將資料分配到不同的db伺服器上。降低單點機器的負載。2.2邏輯上的水平劃分...

資料庫分庫分表

1 基本思想之什麼是分庫分表?從字面上簡單理解,就是把原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存到多個表上。2 基本思想之為什麼要分庫分表?資料庫中的資料量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業務的發展,庫中的表會越來越多,表中的資料量也會越來越大,相...

資料庫分庫 分表

分庫的優點是 實現簡單,庫與庫之間界限分明,便於維護,缺點是不利於頻繁跨庫操作,單錶資料量大的問題解決不了。分表的優點是 能解決分庫的不足點,但是缺點卻恰恰是分庫的優點,分表實現起來比較複雜,特別是分表規則的劃分,程式的編寫,以及後期的 資料庫拆分移植維護。實際應用中,一般網際網路企業的路線都是先分...