2003服务器怎么挂网站,怎么启用wordpress,网站建设有哪些分工分,核酸二维码文章目录1.为什么需要分区分表分库2.各种分区分表分库的情况3.弊端3.1分区弊端3.2分表分库弊端1.为什么需要分区分表分库
数据量达到一定规模#xff0c;进行常规的sql语句优化已经效果不大的情况下#xff0c;常见为mysql数据库#xff0c;单表的记录达到1000W和空间占用至…
文章目录1.为什么需要分区分表分库2.各种分区分表分库的情况3.弊端3.1分区弊端3.2分表分库弊端1.为什么需要分区分表分库
数据量达到一定规模进行常规的sql语句优化已经效果不大的情况下常见为mysql数据库单表的记录达到1000W和空间占用至100G可以扩充硬件但是硬件收益已经不大的情况下或者在预算有限的情况下则需要进行优化数据库结构。这个时候就应该对数据进行拆分。
2.各种分区分表分库的情况
1.分区 分区是数据库本身的一个特性功能将数据按照业务拆分成多个区在业务上先判断属于哪个分区即可到指定分区查询这样就可实现更快的查询速度了。 2.垂直分表 一个表的字段过多根据实际业务访问获取数据的字段将其拆分成两个表就类似于副表相当于单表转为一对一如商品订单详情表将订单的时间商品各种基本信息作为主表相对不重要的东西或者需要点击多一步的东西作为副本表通过增加访问接口的形式实现加速。 3.垂直分库 垂直分库可根据业务将有一定关系但是耦合度不算高的表放到不同服务器的库中变相增强硬件各个库各司其职。比如商品库店铺库等等 4.水平分库 一般优先垂直分库之后再进行水平分库常见商品库里商品的记录很多单表1500W可将原本的DB变为DB1,DB2结构一致将数据根据id进行%21然后分别插入算法可以自定义这样一个库就只有750W了弊端数据库实例过多导致运营维护不便。还有一种情况是做读写分离。 5.水平分表 同理水平分库只是放在同一个实例拆分维度由库变成表可以对库里的数据一张表分为结构一致的多张表表比如tb1,tb2,可以一样将数据根据id进行%21进行保存算法可以自定义也可以将数据按照日期进行存储拜访比如一个月一年为维度等等。
3.弊端
3.1分区弊端
依赖于数据库特性需要在sql明确知道属于哪个分区相对来说基本属于硬编码本质还是使用的一个数据库实例吞吐量还是有限。且如果要分页展示难以实现跳页功能需简化分页比如使用流式或者只能上一页下一页这样的功能的分页效果。
3.2分表分库弊端
1.事务问题由于实例分同一个存在分布式事务问题 2.关联查询节点不同如店铺和商品库需要使用业务代码处理 3分页问题升降序处理 4.实例或表不同无法使用自增主键会出现主键冲突uuid不是趋势递增难以使用id进行进行分库需要一些分布式id的解决方案比如雪花算法等等 5.公共表一般数据量不是特别大但是和各个业务联系相对紧密如地区常见做法将地区表每个实例放一份但是同步增删改是一个麻烦的事情