Mysql的垂直分表-新建
生活随笔
收集整理的這篇文章主要介紹了
Mysql的垂直分表-新建
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
說明
垂直分割:就是將一個表按照字段來分,每張表保證有相同的主鍵就好。一般來說,將常用字段和大字段分表來放。? ??
優勢:比沒有分表來說,提高了查詢速度,降低了查詢結果所用內存;
劣勢:沒有解決大量記錄的問題,對于單表來說隨著記錄增多,性能還是下降很快;
案例
?
思路
硬分表,把常用字段建立一張,不常用的建立一張
案例
現在有個user表:如下,有很多字段,現在分成兩個表,一個user1用了存放用戶主要的屬性字段,另一個表user2,用了存放各種時間相關的字段表user2中通過uid來關聯user1表
mysql> desc user; +----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | group_id | int(10) unsigned | NO | | 0 | | | username | varchar(32) | NO | MUL | | | | nickname | varchar(50) | NO | MUL | | | | password | varchar(32) | NO | | | | | salt | varchar(30) | NO | | | | | email | varchar(100) | NO | MUL | | | | mobile | varchar(11) | NO | MUL | | | | avatar | varchar(255) | NO | | | | | birthday | date | NO | | NULL | | | prevtime | int(10) unsigned | NO | | 0 | | | logintime | int(10) unsigned | NO | | 0 | | | loginip | varchar(50) | NO | | | | | loginfailure | tinyint(1) unsigned | NO | | 0 | | | joinip | varchar(50) | NO | | | | | jointime | int(10) unsigned | NO | | 0 | | | createtime | int(10) unsigned | NO | | 0 | | | updatetime | int(10) unsigned | NO | | 0 | |mysql> desc user1; +----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | group_id | int(10) unsigned | NO | | 0 | | | username | varchar(32) | NO | MUL | | | | nickname | varchar(50) | NO | MUL | | | | password | varchar(32) | NO | | | | | salt | varchar(30) | NO | | | | | email | varchar(100) | NO | MUL | | | | mobile | varchar(11) | NO | MUL | | | | avatar | varchar(255) | NO | | | | | birthday | date | NO | | NULL | |mysql> desc user2; +----------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------+----------------+ | uid | int(10) unsigned | NO | | | | prevtime | int(10) unsigned | NO | | 0 | | | logintime | int(10) unsigned | NO | | 0 | | | loginip | varchar(50) | NO | | | | | loginfailure | tinyint(1) unsigned | NO | | 0 | | | joinip | varchar(50) | NO | | | | | jointime | int(10) unsigned | NO | | 0 | | | createtime | int(10) unsigned | NO | | 0 | | | updatetime | int(10) unsigned | NO | | 0 | | ————————————————?
總結
以上是生活随笔為你收集整理的Mysql的垂直分表-新建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Yii视图组件
- 下一篇: 真正的打工皇帝 从小员工到拥有650亿