说明

垂直分割:就是将一个表按照字段来分,每张表保证有相同的主键就好。一般来说,将常用字段和大字段分表来放。

优势:比没有分表来说,提高了查询速度,降低了查询结果所用内存;

劣势:没有解决大量记录的问题,对于单表来说随着记录增多,性能还是下降很快;

案例

思路

硬分表,把常用字段建立一张,不常用的建立一张

案例

现在有个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的垂直分表-新建相关推荐

  1. mysql分区表mycat_MySQL 中间件之Mycat垂直分表配置

    垂直分表就是将一个库下的多个表拆分到多个MySQL实例,实现库压力分流. 通过GTID模式复制,db01与db02之间不进行任何连接与复制 当前环境: mycat --> db01与db02 d ...

  2. mysql字段分隔符拆分_面试题Mysql数据库优化之垂直分表

    在日常的开发工作中,除了JAVA相关的技术,打交道最多的就是Mysql数据库,当数据积累到一定程度,比如500W时就会难免出现一些慢sql,对数据库的优化方式有很多,比如通过增加合理的索引,今天我们来 ...

  3. mysql 垂直分表技术的实战演练,有实战代码。

    垂直分表技术 垂直分割指的是:表的记录并不多,但是字段却很长,表占用空间很大,检索表的时候需要执行大量的IO,严重降低了性能.这时需要把大的字段拆分到另一个表,并且该表与原表是一对一的关系. 1,垂直 ...

  4. mysql 垂直分表 设计_水平分表和垂直分表

    一.数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值.在业务Service来看就是,可用数据库连接少甚至无连接可用.接下来就 ...

  5. 数据库--分库分表--垂直分表与水平分表

    原文网址:数据库--分库分表--垂直分表与水平分表_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍数据库的分库分表的方案:垂直分表与水平分表. 关系型数据库本身比较容易成为系统瓶颈,单机存储容 ...

  6. MYSQL 之 分库分表

    分库分表 关系型数据库本身⽐较容易成为系统瓶颈,单机存储容量.连接数.处理能⼒都有限.当单表的数据量 达到2000W或100G以后,由于查询维度较多,即使添加从库.优化索引,做很多操作时性能仍下降严 ...

  7. Mysql的分库分表(基于shardingsphere)

    一.名词解释 库:database:表:table:分库分表:sharding 二.数据库架构演变 刚开始我们只用单机数据库就够了,随后面对越来越多的请求,我们将数据库的写操作和读操作进行分离, 使用 ...

  8. 面试官:说说Mysql数据库分库分表,并且会有哪些问题?

    之前一篇文章已经谈到了数据库集群之主从集群也就是读写分离,也提到了读写分离其实只是分担了访问的压力,但是存储的压力没有解决. 存储的压力说白了就是随着系统的演化,需求的增加,可能表的数量会逐渐增多,比 ...

  9. mysql删除分表键_一文看懂 MySQL 分区和分表,提高表增删改查效率

    原标题:一文看懂 MySQL 分区和分表,提高表增删改查效率 作者:冯帅,精通Oracle. MySQL. 擅长异构数据库数据同步及迁移.数据库的设计和调优,对高可用方案有深入研究. MySQL分区和 ...

最新文章

  1. hdu5437(2015长春网络赛A题)
  2. centos 对已有卷扩容_centos7 逻辑卷扩容
  3. java se 导原码_Java SE 8新功能导览:Java开发世界中的重大变化
  4. centos编译mysql5.6_centos7上编译安装mysql5.6
  5. 笔记本电脑如何保养_嘉兴专业笔记本电脑喷漆加工厂价格实惠
  6. linux crontab定时任务详解
  7. 1473. A + B 格式
  8. python读yaml的库_Python读取YAML文件过程详解
  9. 期货市场技术分析01_理论基础
  10. 深入浅出数据中心里的OpenStack
  11. rgba颜色转换16进制颜色
  12. 电脑各类快捷键及运行命令大全
  13. 网上书店销售管理系统java_网上书店销售管理系统的设计与实现(JSP,SQLServer)
  14. 【Arduino】颜色识别的智能搬运机器人设计
  15. 官宣!AutoSec第六届中国汽车网络安全周火热来袭,10大特色首度曝光!1000+精准专业观众、60+OEM竞相参与
  16. [anjularjs] ui-router嵌套ui-view不刷新问题
  17. 飞桨框架v2.3 API最新升级 | 对科学计算、概率分布和稀疏Tensor等提供更全面支持
  18. css字体样式渐变导致360浏览器vue兼容性问题
  19. PyQt5基础使用!(三)
  20. 像角斗士一样地活着!

热门文章

  1. 项目优化之:GPU编程
  2. MULE ESB环境搭建和例子(通过装插件的方式)
  3. mysql 故障案例_mysql故障案例
  4. scale html 浏览器,javascript中scale怎么使用?
  5. java代码轻量级锁_Java轻量级锁原理详解(Lightweight Locking)
  6. Qt学习笔记之UDP编程
  7. Anaconda 安装 Python 库(MySQLdb)的方法
  8. 基于深度学习的图像语义分割技术概述之4常用方法
  9. 【leetcode】27.RemoveElement
  10. 微信小程序-WebSocket应用