資料庫的拆分

2021-07-12 06:46:39 字數 949 閱讀 1518

使用者主表

現在要從裡面每50w資料拆分成乙個新錶,首先查詢符合要求的使用者的資料量 

得到需要建表的數量

然後用開始迴圈建表存資料

$this->sql = 'select count(fid) from t_banlong_push_regdev where fdevice=0 and ftoken!=\'\'';

echo "sql=".$this->sql;

$count = $this->dosql('_select');

var_dump($count);

$number = $count[0]['count(fid)']; //查詢到表符合條件的資料

echo $number;

$tbnumber= round($number/$limit)+1;

echo $tbnumber;

for($i=0;$i

以上只是基本實現功能而已,沒有對資料庫的操作進行優化,效能差。目前在優化中。

也可以採用這樣建表讀入一體的方法來複製資料 相對來說select into速度比較快用法如下

create table table2 (select * from table1);

我使用的例子如下

$sql1 = 'create table '.$data['ftable']."_".$i.' ( select * from t_banlong_push_regdev where faddr = \''.$data['faddr'].'\' and fdevice=0 and ftoken !=\'\' order by fid desc limit '.$star.','.$limit.')';

$re = mysql_query($sql1,$this->conn);

資料庫拆分

一 水平切分是指,以某個欄位為依據 例如id 按照一定規則 例如取模 將乙個庫 表 上的資料拆分到多個庫 表 上,以降低單庫 表 大小,達到提公升效能的目的的方法,水平切分後,各個庫 表 的特點是 1 每個庫 表 的結構都一樣 2 每個庫 表 的資料都不一樣,沒有交集 3 所有庫 表 的並集是全量資...

資料庫拆分

1.第一步 採用分布式快取redis memcached等降低對資料庫的讀寫操作 2.第二步 如果快取使用過後,資料庫訪問量還是非常大,可以考慮資料庫讀寫分離原則。3.第三步 當我們使用讀寫分離 快取後 資料庫的壓力還是很大的時候,這就需要使用資料庫的拆分了。乙個資料庫由很多表構成,每個表對應著不同...

資料庫拆分

資料庫水平垂直拆分 當資料庫量非常大的時候,db已經成為系統瓶頸時就可以考慮進行水平垂直拆分了。水平拆分 一般水平拆分是根據表中的某乙個字段 主鍵id 進行取模處理,將表中的資料拆到多張表裡,這樣每張表的結構相同但資料不同。不但可以根據id取模分表也可以按時間分表,比如每月生成一張表。按照範圍分表也...