1. 程式人生 > >mysql15--垂直分表水平分表

mysql15--垂直分表水平分表

mysql 支持 post 示意圖 拆分 engine 技術分享 分割 set

?分表技術(表的結構不能變)
分表技術有(水平分割和垂直分割)

當一張越來越大時候,即使添加索引還慢的話,我們可以使用分表
以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,位越大是尋址範圍越大,

  

mysql15--垂直分表水平分表