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 基本思想之為什麼要分庫分表?資料庫中的資料量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業務的發展,庫中的表會越來越多,表中的資料量也會越來越大,相...
資料庫分庫 分表
分庫的優點是 實現簡單,庫與庫之間界限分明,便於維護,缺點是不利於頻繁跨庫操作,單錶資料量大的問題解決不了。分表的優點是 能解決分庫的不足點,但是缺點卻恰恰是分庫的優點,分表實現起來比較複雜,特別是分表規則的劃分,程式的編寫,以及後期的 資料庫拆分移植維護。實際應用中,一般網際網路企業的路線都是先分...