mysql的分表技術
水平分割技術:->以qq使用者登入為例:
建立uuid表
create
table uuid (id int unsigned primary
key auto_increment);
建立3張使用者表
create
table qqlogin0
(id int unsigned primary
key,
name varchar(32) not
null
default
'',pwd char(32) not
null
default
'')engine=myisam charset utf8;
create
table qqlogin1
(id int unsigned primary
key,
name varchar(32) not
null
default
'',pwd char(32) not
null
default
'')engine=myisam charset utf8;
create
table qqlogin2
(id int unsigned primary
key,
name varchar(32) not
null
default
'',pwd char(32) not
null
default
'')engine=myisam charset utf8;
register.php
<?php
//完成註冊
$name=$_get['name'];
$pwd=$_get['pwd'];
if(empty($name)||empty($pwd))
$con=mysql_connect('localhost','root','root');
if(!$con)
mysql_select_db('temp');
$sql="insert into uuid values(null)";
if(mysql_query($sql,$con))else
}
login.php
<?php
//完成登入
$id=$_get['id'];
$pwd=$_get['pwd'];
if(empty($id)||empty($pwd))
$con=mysql_connect('localhost','root','root');
if(!$con)
mysql_select_db('temp');
$tabname='qqlogin'.$id%3;
$sql="select pwd from $tabname where id=$id";
$res=mysql_query($sql,$con);
if($row=mysql_fetch_assoc($res))else
所謂垂直分割,就是把某錶的大字段,並且不是經常查詢,單獨的放入到一張表去,比如下面案例:
垂直分表水平分表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 分表技術 表的結構不能變 分表技術有 水平分割和垂直分割 當一張越來越大時候,即使新增索引還慢的話,我們可以使用分表 以qq使用者表來具體的說明...
mysql的水平分表和垂直分表
1,水平分割 例 qq的登入表。假設qq的使用者有100億,如果只有一張表,每個使用者登入的時候資料庫都要從這100億中查詢,會很慢很慢。如果將這一張表分成100份,每張表有1億條,就小了很多,比如qq0,qq1,qq1.qq99表。使用者登入的時候,可以將使用者的id 100,那麼會得到0 99的...
什麼是垂直分庫分表,水平分庫分表
垂直分片 按照業務拆分的方式稱為垂直分片,又稱為縱向拆分,它的核心理念是專庫專用。在拆分之前,乙個資料庫由多個資料表構成,每個表對應著不同的業務。而拆分之後,則是按照業務將表進行歸類,分布到不同的資料庫中,從而將壓力分散至不同的資料庫。下圖展示了根據業務需要,將使用者表和訂單表垂直分片到不同的資料庫...