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使用者表來具體的說明一下分表的操作.
思路如圖 :
首先我建立三張表 user0 / user1 /user2 , 然後我再建立 uuid表,該錶的作用就是提供自增的id, 插入的時候插入到不同的表中去。
走**:
create
table
user0(
id
int
unsigned
primary
key
,
name
varchar
(32)
not
null
default
''
,
pwd
varchar
(32)
not
null
default
''
)
engine=myisam charset utf8;
create
table
user1(
id
int
unsigned
primary
key
,
name
varchar
(32)
not
null
default
''
,
pwd
varchar
(32)
not
null
default
''
)
engine=myisam charset utf8;
create
table
user2(
id
int
unsigned
primary
key
,
name
varchar
(32)
not
null
default
''
,
pwd
varchar
(32)
not
null
default
''
)
engine=myisam charset utf8;
create
table
uuid(
id
int
unsigned
primary
key
auto_increment)engine=myisam charset utf8;
n 垂直分割,把列拆分到不同的表。示意圖:
一句話: 如果一張表某個字段,資訊量大,但是我們很少查詢,則可以考慮把這些字段,單獨的放入到一張表中,這種方式稱為垂直分割.
mysql.ini:
port = 3306 埠是可以改的。
max_connections=200 ,mysql是中型資料庫,2000併發數是極限。但是做好快取之後可以支援10萬沒問題。也可以做讀寫分離集群。
query_cache_size=15m,查詢快取的大小。
innodb引擎,所以下面兩個引數調的很大
innodb_additional_mem_pool_size = 64m
innodb_buffer_pool_size =1g //快取池
對於myisam,需要調整key_buffer_size
當然調整引數還是要看狀態,用show status語句可以看到當前狀態,以決定改調整哪些引數
如果你的機器記憶體超過4g,那麼毋庸置疑應當採用64位作業系統和64位mysql 5.5.19,位越大是定址範圍越大,
mysql 水平分表 垂直分表
mysql的分表技術 水平分割技術 以qq使用者登入為例 建立uuid表 create table uuid id int unsigned primary key auto increment 建立3張使用者表 create table qqlogin0 id int unsigned prima...
mysql的水平分表和垂直分表
1,水平分割 例 qq的登入表。假設qq的使用者有100億,如果只有一張表,每個使用者登入的時候資料庫都要從這100億中查詢,會很慢很慢。如果將這一張表分成100份,每張表有1億條,就小了很多,比如qq0,qq1,qq1.qq99表。使用者登入的時候,可以將使用者的id 100,那麼會得到0 99的...
什麼是垂直分庫分表,水平分庫分表
垂直分片 按照業務拆分的方式稱為垂直分片,又稱為縱向拆分,它的核心理念是專庫專用。在拆分之前,乙個資料庫由多個資料表構成,每個表對應著不同的業務。而拆分之後,則是按照業務將表進行歸類,分布到不同的資料庫中,從而將壓力分散至不同的資料庫。下圖展示了根據業務需要,將使用者表和訂單表垂直分片到不同的資料庫...