在什么情况下会进行数据库分表
分表主要是为了解决数据库的压力,你可以选择放在一个数据库里 也可以放到另外的数据库里。单表记录条数达到百万千万级别时候就需要使用分表
分表的类别
分表一般是横向分表和纵向分表
纵向分表
简单的说是竖着将表切割。也就是将一个表的字段分到多个表中
可以根据数据的活跃度,一个表内不是所有的数据字段都是常用字段
例如:博客系统
文章标题 文章 分类 创建时间等这些都是变化频率比较慢,但是查询的次数比较多,而且最好是实时的数据。这种数据我们称为 冷数据
而博客的浏览量,回复数 点赞数 这种类似于统计的信息 或者别的变化频率比较高的数据 我们称为 活跃数据
所以在进行数据库结构的设计时,首先考虑分表
分表之后可以按照不同的需求使用不同的搜索引擎
冷数据的处理可以使用MyIsam 这样可以有更好的数据查询体验
活跃数据可以使用Innodb 可以有更快的更新速度
其次对于冷数据进行更多的从库配置,因为更多的操作查询 可以加快查询速度
对于热数据可以采取横向分表(冷热数据的区别)
对于一些特殊的活跃数据 可以使用memcache redis 之类缓存 等几类到一定的量再去更新数据库(考虑下断电情况)
横向分表
和上面纵向分表一样,横向分表就是同样的数据
同样的表结构 拆成两份或者其他的纬度保存
分表理由就比较简单,因为要保证单表的大小不会过大 影响查询等处理能力
在查询值上做功夫有针对表,不至于一个表查没有,再去查另一个表
网友评论