mysql 水平分表 垂直分表

2021-07-02 05:48:29 字數 1840 閱讀 7837

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的...

什麼是垂直分庫分表,水平分庫分表

垂直分片 按照業務拆分的方式稱為垂直分片,又稱為縱向拆分,它的核心理念是專庫專用。在拆分之前,乙個資料庫由多個資料表構成,每個表對應著不同的業務。而拆分之後,則是按照業務將表進行歸類,分布到不同的資料庫中,從而將壓力分散至不同的資料庫。下圖展示了根據業務需要,將使用者表和訂單表垂直分片到不同的資料庫...